一、DM SQL 日志文件基础概念与核心价值1.1 概念理解 DM SQL 日志文件的本质DM SQL 日志文件是达梦数据库用于记录系统运行期间所执行的 SQL 语句及相关状态信息的文件。它详细记录了数据库接收到的所有 SQL 请求、执行时间、执行用户及返回结果状态是数据库诊断与审计的重要依据。1.2 价值日志文件在运维中的核心作用在生产环境中DM SQL 日志文件发挥着不可替代的作用。主要包括: 1. 故障排查: 定位报错 SQL 及执行上下文。2. 性能调优: 识别慢查询与高频 SQL。3. 安全审计: 追踪用户操作行为与数据变更轨迹。1.3 机制日志文件的分类与存储规则达梦数据库的 SQL 日志主要通过 sqllog.ini 控制生成。日志文件默认存储在安装目录的 log 文件夹下文件名通常以 dmsql_实例名_日期_时间.log 命名。根据配置日志可以按文件大小或时间间隔进行切换。二、DM SQL 日志文件配置开启与参数详解2.1 步骤一修改 dm.ini 核心参数要开启 SQL 日志功能首先需要修改 dm.ini 参数文件中的 SVR_LOG 参数。将其设置为 1 表示开启 SQL 日志设置为 0 则关闭。操作如下: 1. 使用 Disql 工具登录数据库。2. 执行修改语句:SP_SET_PARA_VALUE(1, SVR_LOG, 1);。2.2 步骤二配置 sqllog.ini 日志策略sqllog.ini 是控制 SQL 日志行为的核心配置文件。主要参数包括: 1. SQL_TRACE_MASK: 控制记录的 SQL 类型(如 1 记录 DML, 2 记录 DDL)。2. SQL_FILE_MODE: 日志文件生成模式(0 表示不自动切换, 1 表示按大小切换)。3. SQL_FILE_NUM: 保留的日志文件个数。4. SQL_FILE_SIZE: 单个日志文件的最大大小(MB)。配置示例如下:[dmdba] SQL_TRACE_MASK1 SQL_FILE_MODE1 SQL_FILE_NUM5 SQL_FILE_SIZE1002.3 步骤三动态加载与生效验证修改配置文件后需要使其生效。可以通过重启数据库服务实现也可以在数据库运行状态下调用系统过程动态加载。执行命令:SP_REFRESH_SVR_LOG_CONFIG();。此时 DM SQL 日志文件将开始正常记录。以下是日志开启与生成的流转过程:否是按大小切换按时间切换启动达梦数据库实例读取 dm.ini 参数SVR_LOG 是否为 1不记录 SQL 日志读取 sqllog.ini 配置SQL_FILE_MODE 配置判断达到 SQL_FILE_SIZE 后生成新文件达到设定时间后生成新文件写入 log 目录的 DM SQL 日志文件超过 SQL_FILE_NUM 自动清理旧日志三、DM SQL 日志文件分析实战与运维管理3.1 步骤一日志文件内容格式解析打开生成的 DM SQL 日志文件可以看到每行记录包含丰富信息。典型格式包含: 执行时间、会话 ID、事务 ID、SQL 文本、执行耗时、错误码等。通过分析这些字段可以快速还原 SQL 的执行现场。3.2 步骤二慢 SQL 排查与定位流程通过 DM SQL 日志文件排查慢 SQL 是 DBA 的常规操作。1. 按时间点筛选出报错时段的日志文件。2. 使用文本搜索工具(如 grep)查找高耗时记录。例如搜索执行时间超过 1000 毫秒的记录:grep time\[1[0-9]{3}\] dmsql_*.log。3. 提取对应的 SQL 文本结合执行计划进行优化。3.3 步骤三日志文件清理与空间维护如果 sqllog.ini 中 SQL_FILE_MODE 设置不当DM SQL 日志文件可能会撑满磁盘。运维建议如下: 1. 合理设置 SQL_FILE_NUM 控制保留文件数。2. 定期将历史日志归档至廉价存储。3. 编写定时脚本检查 log 目录大小在紧急情况下自动清理早期日志。这样可以保障 DM SQL 日志文件机制稳定运行而不影响业务。