DM8开启开启 SQLLOG

DM8开启 SQLLOG 功能,可以跟踪和记录DM数据库所有或指定 SQL 语句的执行情况,通常用于性能优化、故障排查、审计追踪。
本文仅写如何开启 SQLLOG ,不涉及性能优化。

1、开启 SQLLOG
编辑 sqllog.ini 文件
在 dm.ini 文件同目录下,编辑 sqllog.ini 文件,该文件是配置 SQLLOG 的位置、大小、文件个数等信息

# 全局配置区
    # SQL日志缓存占用空间上限,生产256G为例,可调为最大
    BUF_TOTAL_SIZE          = 1024000         #SQLs Log Buffer Total Size(K)(1024~1024000)
    # 一块SQL日志缓存的空间大小
    BUF_SIZE                = 10240          #SQLs Log Buffer Size(K)(50~409600)
    # 系统保留的SQL日志缓存的个数
    BUF_KEEP_CNT            = 20             #SQLs Log buffer keeped count(1~100)

# 模式配置区
    [SLOG_ALL]
    FILE_PATH    = /data/sqllog            # SQLLOG所在目录
    PART_STOR    = 0            # 日志分区存储的划分条件,0不划分,1根据用户划分(就是日志名带用户名)
    SWITCH_MODE  = 2            # 日志文件切换模式:0不切换 1按SQL数量切换 2按文件大小切换 3按时间间隔切换
    SWITCH_LIMIT   = 1024       # 默认128MB,可选 1~2000MB,生产配256或512、1024,配置大一些
    ASYNC_FLUSH   = 1           # 日志刷盘,0实时刷盘 1异步刷盘,生产配置1
    FILE_NUM = 50               # 生产中配置 50。总共记录多少个日志文件,达到50个,生成新的,然后删除最早的一个。可选 2~1024 .
    ITEMS    = 0
    SQL_TRACE_MASK  = 1         # 指定SQL日志中需要被记录的语句类型,参照附录1
    MIN_EXEC_TIME = 0              # 记录语句最小的执行时间(毫秒) SQL执行时间小于这个值就不记录
    USER_MODE   = 0                  # 0关闭用户过滤;1记录列出的用户SQL;2不记录列出的用户SQL
    USERS =                                 # 列出的用户
    EXECTIME_PREC_FLAG = 0      # 设置SQL日志中执行时间EXECTIME的时间单位。0:单位为毫秒MS;1:单位为微秒US 

    [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



2、修改 SVR_LOG 参数

修改的方式一:从 dm.ini 里修改,修改文件需要重启达梦数据库

#request trace
        SVR_LOG_NAME            = SLOG_ALL     #Using which sql log sys in sqllog.ini
        SVR_LOG                         = 1                     #Whether the Sql Log sys Is open or close. 1:open, 0:close, 2:use switch and detail mode. 3:use not switch and simple mode.

    • 参数 SVR_LOG = 1 为打开
    • 参数 SVR_LOG_NAME 对应着 sqllog.ini 里边的日志名称

修改的方式二:通过 SQL 语句在线修改,即时生效,无需重启数据库(推荐)

-- 修改 SVR_LOG = 1
SP_SET_PARA_VALUE(1,'SVR_LOG',1);

-- 刷新 SQLLOG 配置
SP_REFRESH_SVR_LOG_CONFIG();

执行后,达梦数据库会自动在 sqllog 目录下生成 SQL 日志文件。

到这里配置 SQLLOG 就完成。
posted @ 2025-12-16 11:16  花之旭  阅读(10)  评论(0)    收藏  举报