一、需求
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详细使用指南,供参考:
系统上线第二步 | 达梦怎么快速找出来需要建立索引的语句?(上线前的必做工作!) | 达梦技术社区
参考链接
发表评论