注册
如何开启SQL日志?

如何开启SQL日志?

csw 2022/06/02 6208 6 2
摘要 经常会收到反馈数据库运行卡慢,这时候除了开发人员提供相关慢SQL,我们也可以通过开启SQL日志功能来获取数据库的慢SQL,进行优化。

1.SQL日志配置文件路径

一般位于数据库数据文件路径下面。可以通过ps -ef|grep dmserver看到参数配置文件dm.ini所在路径,sqllog.ini也在同一个路径。

2.编辑SQL日志文件sqllog.ini

下面是一个比较常用的设置:
[SLOG_ALL]
FILE_PATH = /home/dmdba/dmdbms/log #日志文件生成路径
PART_STOR = 0
SWITCH_MODE = 2 #按文件大小切换
SWITCH_LIMIT = 512 #设置单个日志最大512M,根据实际环境设置
ASYNC_FLUSH = 1 #异步SQL日志功能,注意不要开同步
FILE_NUM = 4 #总共记录4个日志文件,根据实际环境设置
ITEMS = 0
SQL_TRACE_MASK = 2:3:25 #LOG记录的语句类型掩码
MIN_EXEC_TIME = 1500 #最小执行时间毫秒,根据实际环境设置
USER_MODE = 0
USERS =
更多的参数详情,可以看《DM8系统管理员手册》的第二章。

3.开启SQL日志

数据库执行以下命令:

CALL SP_REFRESH_SVR_LOG_CONFIG(); -- 加载sqllog.ini的配置信息
SP_SET_PARA_VALUE(1,'SVR_LOG',1); --开启sql日志

4.查看sql日志

开启sql日志后,生成的sql日志文件位于sqllog.ini设置的FILE_PATH路径,默认在$DM_HOME/log目录。
以dmsql开头的文件就是SQL日志。

5.关闭SQL日志

如果需要关闭,数据库执行以下命令:

SP_SET_PARA_VALUE(1,'SVR_LOG',0);

6.SQL日志的分析

一般sql日志会比较多,比较大,所以需要进行入库分析。达梦提供了工具包对sql日志进行分析。工具包DMLOG可以找达梦相关技术人员获取。下面介绍下sql日志入库的使用方法:
(1) 测试环境初始化一个达梦的数据库实例,page_size设置为32
(2) 测试环境需要安装jdk,推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件
(3)根据实际情况配置dmlog.properties。如sql入库的ip地址、账号、密码和sql日志路径等
(4)执行jar包命令
image.png
执行结果会按当前时间生成对应RESULT_$DATE目录,并将所有统计信息都存放在工具包所在的路径下面:
image.png
生成的结果目录下有根据配置的执行时间和执行次数上限值命名的excel文件(xls),报错的SQL和长度超过30000的SQL会另外生成txt文件(txt),echart散点图,QPS折线图及90%平均次数和平均耗时的SQL统计图(html):
image.png
image.png

7.总结

获取数据库SQL日志,对慢SQL进行优化,对于数据库优化是很重要的一个步骤。可以当作日常运维的一个部分,及时处理,或者提交给达梦相关技术人员处理。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服