DM开启慢日志监控并用DmLog工具分析数据

工具描述

DMLOG用于对达梦SQL日志进行统计分析,便于SQL优化人员进行查看捕获关键信息,不提供SQL优化建议。DMLOG用java语言编写,不受操作系统平台限制,大小不超过10M,在安装好Java环境后,可在各平台运行。
该工具实现的原理为:读取SQL日志到后台达梦数据库log_commit表中 ,在数据库中进行查询统计后输出excel文件结果。

Log_commit表的表结构定义如下:

CREATE TABLE "SYSDBA"."LOG_COMMIT"
(
"STARTTIME" DATETIME(6),
"SESS" VARCHAR(500),
"SQLSTR" TEXT,
"EXETIME" FLOAT,
"SQLSTR_SUB" VARCHAR(8000),
"EUER" VARCHAR(100),
"OPTYPE" VARCHAR(30)) STORAGE(USING LONG ROW, ON "MAIN", CLUSTERBTR) ;
CREATE  INDEX "IDX_EXETIME_RESULT_2021_10_12_11_22_52" ON "SYSDBA"."LOG_COMMIT"("EXETIME" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;

分别记录了根据日志分析出来的SQL开始时间,会话信息,SQL文本,执行时间,参数替换后的SQL文本,SQL执行用户信息,SQL语句操作类型(新加字段)

开启达梦慢日志

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    = ../log/slog
    PART_STOR    = 0
    SWITCH_MODE  = 2
    SWITCH_LIMIT   = 128
    ASYNC_FLUSH   = 1
    FILE_NUM = 5
    ITEMS    = 0 
    SQL_TRACE_MASK  = 1 
    MIN_EXEC_TIME = 0 
    USER_MODE   = 0 
    USERS =

注意,1、要到log目录下新建slog文件夹。2、是USER_MODE=0 --为0代表不指定用户,为1时USERS要列出指定用户

测试是否开启

  1. 登录达梦
    在这里插入图片描述
  2. 执行测试语句不需要重启,如下图:
    sp_set_para_value(1,'SVR_LOG',1);
    
    在这里插入图片描述
  3. 然后随便执行一条查询语句在这里插入图片描述
  4. 执行成功后我们进入到slog日志的目录查看
    在这里插入图片描述

日志分析

  1. 配置DmLog
    在这里插入图片描述

  2. 执行jar包命令
    在这里插入图片描述
    在这里插入图片描述
    生成的结果目录下有根据配置的执行时间和执行次数上限值命名的excel文件(xls),报错的SQL和长度超过30000的SQL会另外生成txt文件(txt),echart散点图,QPS折线图及90%平均次数和平均耗时的SQL统计图(html):

  3. 分析结果
    在这里插入图片描述
    在这里插入图片描述

DmLog使用条件

  1. 运行环境预先安装Java环境;支持liunx和windows系统运行。
    说明:推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件,windows下不支持java1.6版本。
  2. SQL日志格式要求确保每条语句后紧跟sql语句时间,因此需确认日志生成的数据库的sql trace参数,建议使用默认参数;
  3. 由于程序运行需要在后台数据库建log_commit表,建表前会删除同名表,因此如果有同名表,请先做好备份;
  4. 待分析的SQL文件夹中请保证只有SQL日志,无其他文件;
  5. dmlog.properties配置文件中log路径,注意windows下,使用”\”代替”\”。

注意事项:

  1. 请运维人员把sql日志拷贝到测试环境分析,严禁连接生产环境,将生产库作为后台库分析!!!!!!
  2. 在Linux服务器执行使用java -jar -Djava.awt.headless=true Dmlog_DM_8.13.jar
  3. 支持离线日志分析但是必须要连接一个DM数据库只要通就行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值