一、需求

2021年10月份,用户反映部分业务库数据存在异常删除的情况,经与各业务厂家沟通,没有主动删除业务数据的情况存在,用户为了清楚数据是被何人何时何地删除的,希望能在数据库层面记录这些操作。

二、首次配置

通过与产品部门同事沟通,可通过sqllog来记录数据库的操作,过程如下:

1.配置sqllog.ini,该文件位于/opt/dmdbms/data/DAMENG目录

其中ASYNC_FLUSH = 1代表异步模式

2.执行sp_set_para_value(1,'SVR_LOG',1);打开日志记录开关,打开后会在/opt/dmdbms/log目录生成名称为dmsql_DMSERVER.log的日志文件

三、二次配置

一周后,登录数据库服务器查看生成的日志,发现日志文件达到了30G,数据盘一共100G,照这个速度,再过半个月数据盘就要撑爆,与用户沟通后调整sqllog.ini配置如下:

SQL_TRACE_MASK = 4:5:24代表只记录数据库的更新和删除操作

修改完成后执行SP_REFRESH_SVR_LOG_CONFIG()更新sqllog配置。

再过一周去检查,发现数据文件只有几十M,经过日志过滤,最终找到了用户想获取的数据异常删除信息。 

四、小结

sqllog除上面的简单应用,结合DMLOG日志分析工具,可以快速定位系统性能瓶颈,分析哪些sql需要优化,哪些字段需要建索引,下面的链接是dm技术大神撰写的sqllog详细使用指南,供参考:

系统上线第二步 | 达梦怎么快速找出来需要建立索引的语句?(上线前的必做工作!) | 达梦技术社区

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。