1 前言
通过上一篇文章内容,我们对达梦数据库的SQL日志有了更为深入的了解。可以看到,在新环境完成初始化后,sqllog.ini
文件的具体内容如下(实际内容请以实际情况为准)。本次分享的重点在于针对个别参数展开个性化的调整操作,旨在实现将不同类型的日志存放到不同的路径下,以满足多样化的日志管理需求。
[dmdba@dm91 DEM]$ cat sqllog.ini
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~102400)
BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
FILE_PATH = ../log
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 128
ASYNC_FLUSH = 1
FILE_NUM = 5
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
EXECTIME_PREC_FLAG = 0
[SLOG_ERROR]
SQL_TRACE_MASK = 23
FILE_PATH = ../log
[SLOG_DDL]
SQL_TRACE_MASK = 3
[SLOG_LONG_SQL]
SQL_TRACE_MASK = 25
MIN_EXEC_TIME = 60000
[dmdba@dm91 DEM]$
2 参数介绍
这里展开说下dm.ini
中用户请求跟踪相关参数
【SVR_LOG】
- 参数类型:动态·系统级
- 默认值:0
- 功能说明:
控制SQL日志记录功能及模式
▶ 0:关闭日志记录
▶ 1:启用标准日志记录(按SQLLOG.INI配置)
▶ 2:启用轮转日志记录(详细模式,按文件数量切换)
▶ 3:启用固定日志记录(简单模式,仅记录时间戳和原始语句)
【SVR_LOG_NAME】
- 参数类型:动态·系统级
- 默认值:SLOG_ALL
- 配置规范:
- 支持最多10个预设模式名(逗号分隔)
- 单个模式名≤128字节,超长则失效
- 总配置长度≤256字节(超限强制使用SLOG_ALL)
- 模式有效性验证:
• 不存在于SQLLOG.INI的名称自动失效
• 全部无效时默认启用SLOG_ALL - 修改限制:
• 运行期修改需保证新值≤256字节
• 超长报错(ERR_LOG_CONFIG)
- 示例配置:
SVR_LOG_NAME = SLOG_ALL,SLOG_DEL,SLOG_DEL,SLOG_SLT,SLOG_ERROR,SLOG_DDL
【SVR_LOG_PLN_STR】
- 参数类型:动态·会话级
- 默认值:1
- 日志计划记录级别:
├ 0:禁用所有计划记录
├ 1:记录基础执行计划
└ 2:记录动态语句及游标计划 - 特性说明:
▶ 会话级参数:不同客户端会话可设置不同值
▶ 影响范围:仅对当前会话执行的SQL语句生效
▶ 性能考量:1/2级记录可能增加I/O负载,建议做好合理的规划
3 案例分享
注意:
SQL_TRACE_MASK
日志记录的详细程度与参数的日志文件大小呈正相关。也就是说,日志记录得越详尽,相应的参数日志文件就会越大。
因此,在实际生产环境中,为确保系统的稳定高效运行,建议提前对存储资源的分配进行合理规划。这不仅有助于避免因日志文件过大而占用过多存储空间,还能有效防止因 I/O 过度消耗而导致的数据库性能下降。
3.1 创建日志文件存放目录
mkdir {SLOG_DEL,SLOG_ERROR,SLOG_SLT,SLOG_DDL}
[dmdba@dm91 dmback]$ mkdir {
SLOG_DEL,SLOG_ERROR,SLOG_SLT}
[dmdba@dm91 dmback]$ ls -l
drwxr-xr-x 2