暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】达梦数据库日志监控与分析(二)

达梦E学 2025-04-07
739
引 言

数据库日志监控和分析是数据库故障诊断的重要手段之一。本文主要对达梦数据库的实例运行日志,SQL 日志,dmap 辅助进程日志,备份日志等日志文件进行分析讲解,了解数据库日志常见的异常信息,同时介绍达梦常见的接口日志开启方法。
上期介绍了常用日志的信息说明和实例日志的分析。本期会来介绍SQL日志、dmap 辅助进程日志、备份日志、接口日志的监控和分析。
本章内容已在如下环境上测试:
①数据库版本:达梦DM8。
相关关键字:日志监控和分析。

——正文——

01

SQL日志

SQL 日志记录了数据库服务器从客户端接收到的 SQL 请求语句,包括 SQL 语句对应的时间戳、用户名、事务号、SQL 文本和执行时间等信息。

使用SQL日志前,先创建日志目录,并将数据库参数SVR_LOG配置为1,开启sql日志。
    su - dmdba 
    mkdir -p data/dmdbms/log/logcommit
    select * from v$parameter where name like 'SVR_LOG%';
    修改实例路径下 sqllog.ini 文件如下:设置 sql 日志为异步,按照文件大小进行切换,每个 1024M,20 个文件循环写。
      cd  /data/dmdata/DAMENG 
      vi sqllog.ini 
      BUF_TOTAL_SIZE = 10240 
      #SQLs Log Buffer Total Size(K)(1024~1024000) 
      BUF_SIZE = 1024
      #SQLs Log Buffer Size(K)(50~409600) 
      BUF_KEEP_CNT =6 
      #SQLs Log buffer keeped count(1~100) 
      [SLOG_ALL]FILE_PATH = data/dmdbms/log/logcommit #sql 日志生成路径 
      PART_STOR = 0 
      SWITCH_MODE = 2 
      SWITCH_LIMIT = 1024 #每个日志文件 1024M 
      ASYNC_FLUSH = 1 
      FILE_NUM = 20 #循环收集 20 个可以根据实际情况做调整
      ITEMS = 0 
      SQL_TRACE_MASK = 1 
      MIN_EXEC_TIME = 0 
      USER_MODE = 0 
      USERS =
      执行调用存储过程生效配置文件,并开启 SQLLOG 日志。
        SP_REFRESH_SVR_LOG_CONFIG();
        sp_set_para_value(1,'SVR_LOG',1);
        --检查 SVR_LOG 参数。
        select * from v$parameter where name like 'SVR_LOG';
        --检查日志生成情况。
        ls /data /logcommit
        (1)如果需要开启 SQL 日志,则必须配置日志切换模式 SWITCH_MODE 和 FILE_NUM,防止日志无限增长导致磁盘撑爆;
        (2)同步日志会影响系统效率,生产环境建议设置为异步日志;
        (3)在设置 SQL 过滤规则 SQL_TRACE_MASK 时,建议只设置需要记录的 SQL 掩码,生产环境不要直接设成 1。
        我们将日志中如下记录进行举例说明:
          2024-03-23 15:04:06.926 (EP[0] sess:0000000059587140 thrd:6956 user:SYSDBA trxid:2574604 stmt:00000000595AB938 appname:manager.exe ip:127.0.0.1) [SEL] select COMMENT$ from SYS.SYSCOLUMNCOMMENTS where SCHNAME='SYSDBA' and TVNAME='T11' and COLNAME='STRIP' EXECTIME: 0(ms).
          该条信息解读如下:
          2024-03-23 15:04:06.926 表示该条 SQL 被记录下来的时间;
          sess:0000000059587140 表示该 SQL 对应的 session_id 为 0000000059587140
          thrd:6956 表示该 SQL 对应的线程 id 为 6956
          user:SYSDBA 表示执行该 SQL 时所使用的的数据库登录用户为 SYSDBA;
          trxid:2574604 表示该 SQL 对应事务的 trx_id 为 2574604
          stmt:00000000595AB938 表示该 SQL 对应的会话句柄号为 00000000595AB938;
          appname:manager.exe 表示发出该 SQL 请求对应的应用名称,如果为 NULL 表示应用代码中没有填充应用名称值;
          ip:127.0.0.1 表示发出该 SQL 请求的客户端机器的 IP 地址;
          [SEL] 表示该 SQL 所属类型,SEL 表示该 SQL 为查询语句;
          select COMMENT$ from SYS.SYSCOLUMNCOMMENTS where SCHNAME='SYSDBA' and TVNAME='T11'  and COLNAME='STRIP' 
          表示该 SQL 对应的 SQL 语句完整文本信息;
          EXECTIME: 0(ms)表示该 SQL 的执行耗时;


          此外,达梦提供达梦 SQL 日志分析工具 DMLOG。该工具通过分析数据库的 SQL 日志文件,直观地反映 SQL 执行情况。

          02

           dmap辅助进程日志

          damp 辅助日志是记录 DMAP 进程的运行情况的日志,dmap 辅助日志的位置和实例运行日志的位置相同,命名方式为 “dm_dmap_日期.log”。
          主要日志信息解读:

          03

           备份日志

          备份日志,记录的是数据库备份情况的日志,主要用于记录数据库备份的过程信息,判断备份是否完成的日志,日志存放的位置和实例运行日志相同,命名格式为 “dm_BAKES_日期.log”。

          可以通过和数据库运行日志一样的过滤关键词的方式来检查是否有报错信息。

          04

           接口日志

          本节主要介绍 DPI/DCI 日志、ODBC 日志和 JDBC 日志的开启方法。
          (1)开启 DPI/DCI 日志
          在 dm_svc.conf 中开启 DPI/DCI 接口日志,设置以下参数:
            ##打开 DCI 接口日志
            DCI_TRACE=(1
            ##打开 DPI 接口日志
            DPI_TRACE=(1
            在程序工程目录下会生成 dmdci_trace.log、dpi_trace.log 日志。
            DPI/DCI 日志格式类似,记录了调用 DPI/DCI 接口中各函数的名称,参数类型和参数值,返回值,以及调用时间等信息。
            (2)开启 ODBC 日志
            在 odbcinst.ini 中开启 odbc 日志,主要增加如下参数:
              [ODBC]
              Trace=YES 
              TraceFile=/root/odbc.log
              odbc 日志开启后的相关信息如图:
              (3)开启 JDBC 日志
              在连接串中开启 jdbc 日志,例如:
                String urlString = “jdbc:dm//192.168.239.128:5236?loglevel=all&logDir=/opt/log”;
                其中:
                logLevel 记录 jdbc 日志级别,可选 off, error, warn, sql, info, all,默认为 off;
                logDir 表示日志目录,默认为 jvm 当前工作目录。

                总结


                本期的日志监控和分析就到这里,主要介绍了SQL日志分析、dmap 辅助进程日志、备份日志、接口日志的监控和分析。



                END


                以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!


                往期回顾


                【干货】达梦数据库日志监控与分析(一)

                【干货】达梦数据库SQL评测

                【开班】达梦认证管理员DCA在线课程招生中

                【开班】达梦认证专家DCP在线课程招生中

                【开班】达梦认证大师DCM课程招生中


                达梦E学
                达梦数据  学习园地


                文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论