达梦数据库SQL日志功能的使用

在面对复杂的项目性能问题时,开启DM数据库的SQL日志是关键的优化手段。本文介绍如何通过系统参数SVR_LOG及sqllog.ini配置来控制SQL日志的开启与关闭,确保能够准确记录并分析数据库执行的SQL语句。

在项目当中遇到性能问题时,有个很重要的优化手段是去检查SQL的执行效率。但是有些项目情况比较复杂的情况,难以准确抓取到性能有问题的SQL。这个时候就需要开启SQL日志,将数据库执行过的SQL都记录下来,以方便进行跟踪分析
DM数据库控制SQL日志是通过一个系统参数,以及一个ini文件动态控制的
DM数据库开启SQL日志的方法:
SP_SET_PARA_VALUE(1,‘SVR_LOG’,1);
关闭SQL日志的方法:
SP_SET_PARA_VALUE(1,‘SVR_LOG’,0);
另外,SVR_LOG只是SQL日志的开关,SQL日志的具体内容,需要通过sqllog.ini来进行控制
具体的SQLLOG.INI的配置请参考手册

下面是一个参考手册里提供的,SVR_LOG_NAME为SLOG_ALL 的sqllog.ini的例子:
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
PART_STOR = 0
SWITCH_MODE = 0
SWITCH_LIMIT = 0
ASYNC_FLUSH = 0
FILE_NUM = 0
ITEMS = 0
SQL_TRACE_MASK = 0
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =

参考手册里的这个例子全都是0也是很任性。。。配成这样就算开了SVR_LOG也不会记录SQL日志。后面我自己配一个再发吧

<think>嗯,用户问的是达梦数据库如何配置SQL日志文件。首先,我需要回忆一下达梦数据库的相关文档。记得达梦的日志分为几种,比如操作日志SQL日志等等。SQL日志可能记录执行的SQL语句,对调试和审计很重要。 首先,用户可能需要知道如何开启SQL日志。达梦通常使用参数文件dm.ini来配置,里面有很多参数项。应该有一个叫SVR_LOG的开关,用来控制是否启用SQL日志。默认可能是关闭的,需要设置为1。然后,还有相关的参数,比如SQL_TRACE_MASK,这个控制日志记录的内容,比如SELECT、INSERT等操作。可能需要说明不同的掩码值对应的不同操作类型。 接下来,日志文件的位置和大小限制也很重要。参数如SVR_LOG_FILE_PATH设置路径,SVR_LOG_FILE_NUM决定保留多少个日志文件,每个文件的大小由SVR_LOG_FILE_SIZE指定。用户可能需要根据实际需求调整这些值,避免日志占用太多磁盘空间。 另外,日志的详细级别可能由参数SVR_LOG_OPTION控制,比如记录执行时间、参数等。不同的组合值会影响日志的详细程度。需要提醒用户根据需求选择,避免日志过于庞大。 还有动态修改和持久化的问题。用户可能不想重启数据库,所以需要用SQL语句在线修改参数,但要注意有些参数可能需要重启才能生效。同时,修改dm.ini文件可以保证配置持久化,否则重启后可能恢复原设置。 最后,可能需要给出查看日志的方法,比如在配置的路径下查看日志文件,或者使用管理工具。还要提醒用户定期清理日志,注意安全,不要记录敏感信息。 需要检查是否有遗漏的参数或步骤,比如是否还有其他相关参数影响SQL日志的记录。另外,确保提到的参数名称和示例值正确,比如SVR_LOG的有效值是否为0和1,掩码参数是否正确等。可能还需要提到不同版本的达梦数据库是否有差异,建议用户参考对应版本的文档确认参数。 总结下来,回答的结构应该是先介绍相关参数,然后分步骤说明如何配置,包括修改配置文件或动态调整,最后给出查看日志的方法和注意事项。确保用中文,术语准确,步骤清晰,帮助用户正确配置SQL日志。</think>以下是在达梦数据库中配置SQL日志文件的步骤说明: ### 一、SQL日志相关参数 达梦通过`dm.ini`配置文件中的参数控制SQL日志记录,关键参数如下: 1. **SVR_LOG** - 作用:是否启用SQL日志 - 值类型:`0`(关闭,默认)或 `1`(开启) - 示例:`SVR_LOG = 1` 2. **SQL_TRACE_MASK** - 作用:设置记录SQL的类型 - 值类型:掩码组合(十进制) - `1`:INSERT - `2`:DELETE - `4`:UPDATE - `8`:SELECT - `16`:COMMIT/ROLLBACK - 示例:`SQL_TRACE_MASK = 15`(记录所有DML) 3. **SVR_LOG_FILE_PATH** - 作用:日志文件存储路径 - 示例:`SVR_LOG_FILE_PATH = /opt/dmdbms/log` 4. **SVR_LOG_FILE_NUM** - 作用:保留的日志文件个数(默认10) - 示例:`SVR_LOG_FILE_NUM = 20` 5. **SVR_LOG_FILE_SIZE** - 作用:单个日志文件大小(单位MB,默认100) - 示例:`SVR_LOG_FILE_SIZE = 50` ### 二、配置步骤 #### 方法1:通过配置文件修改 1. 打开`dm.ini`文件 ```bash vi /opt/dmdbms/data/DAMENG/dm.ini ``` 2. 修改参数后保存 ```ini SVR_LOG = 1 SQL_TRACE_MASK = 15 SVR_LOG_FILE_PATH = /opt/dmdbms/log ``` 3. 重启数据库服务生效 ```bash systemctl restart DmServiceDMSERVER ``` #### 方法2:动态修改(无需重启) 通过SQL命令在线调整: ```sql -- 启用SQL日志 SP_SET_PARA_VALUE(1, 'SVR_LOG', 1); -- 设置记录所有DML操作 SP_SET_PARA_VALUE(1, 'SQL_TRACE_MASK', 15); -- 修改日志路径(需重启生效) SP_SET_PARA_VALUE(2, 'SVR_LOG_FILE_PATH', '/opt/dmdbms/log'); ``` ### 三、查看SQL日志 1. **直接查看文件** 日志文件命名格式:`dmsql_实例名_日期.log` 示例路径: ```bash tail -f /opt/dmdbms/log/dmsql_DMSERVER_20231020.log ``` 2. **通过管理工具** 使用达梦管理工具(DM Management Tool)连接数据库,在"日志管理"模块查看。 ### 四、注意事项 1. **性能影响** 持续记录SQL日志可能增加I/O负载,建议生产环境按需开启。 2. **日志轮转** 当日志文件达到`SVR_LOG_FILE_SIZE`设定值时,会自动生成新文件。 3. **敏感信息过滤** 通过`SQL_TRACE_MASK`控制记录内容,避免记录敏感操作。 4. **版本差异** 不同版本参数可能略有差异,可通过`V$PARAMETER`视图验证: ```sql SELECT * FROM V$PARAMETER WHERE NAME LIKE '%SVR_LOG%'; ``` > 建议结合`SVR_LOG_OPTION`参数(日志详细级别)进一步控制输出内容,例如记录执行时间、绑定参数等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值