一般位于数据库数据文件路径下面。可以通过ps -ef|grep dmserver看到参数配置文件dm.ini所在路径,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系统管理员手册》的第二章。
数据库执行以下命令:
CALL SP_REFRESH_SVR_LOG_CONFIG(); -- 加载sqllog.ini的配置信息
SP_SET_PARA_VALUE(1,'SVR_LOG',1); --开启sql日志
开启sql日志后,生成的sql日志文件位于sqllog.ini设置的FILE_PATH路径,默认在$DM_HOME/log目录。
以dmsql开头的文件就是SQL日志。
如果需要关闭,数据库执行以下命令:
SP_SET_PARA_VALUE(1,'SVR_LOG',0);
一般sql日志会比较多,比较大,所以需要进行入库分析。达梦提供了工具包对sql日志进行分析。工具包DMLOG可以找达梦相关技术人员获取。下面介绍下sql日志入库的使用方法:
(1) 测试环境初始化一个达梦的数据库实例,page_size设置为32
(2) 测试环境需要安装jdk,推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件
(3)根据实际情况配置dmlog.properties。如sql入库的ip地址、账号、密码和sql日志路径等
(4)执行jar包命令
执行结果会按当前时间生成对应RESULT_$DATE目录,并将所有统计信息都存放在工具包所在的路径下面:
生成的结果目录下有根据配置的执行时间和执行次数上限值命名的excel文件(xls),报错的SQL和长度超过30000的SQL会另外生成txt文件(txt),echart散点图,QPS折线图及90%平均次数和平均耗时的SQL统计图(html):
获取数据库SQL日志,对慢SQL进行优化,对于数据库优化是很重要的一个步骤。可以当作日常运维的一个部分,及时处理,或者提交给达梦相关技术人员处理。
文章
阅读量
获赞