摘抄《DM8系统管理员手册.pdf》
sqllog.ini用于sql日志的配置,当且仅当INI参数SVR_LOG=1时使用。sql跟踪日志默认配置是根据文件大小超过128M后将切换到下一个日志文件,共有5个日志文件,默认配置记录的时间较短,容易被覆盖。生成的sql跟踪日志实时记录所有在数据库层面执行的sql,包括执行耗时,可以通过生成的sql日志分析慢sql,定位应用层面发过来的错误sql;
1、使用SYSDBA用户登录,执行下以SQL
sp_set_para_value(1,'SVR_LOG',1);
2、修改sqllog.ini配置文件,文件所在路径为数据库文件所在路径,和dm.ini同级。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 = 3
SWITCH_LIMIT = 144
ASYNC_FLUSH = 1
FILE_NUM = 10
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
参数名 | 缺省值 | 属性 | 说明 |
---|---|---|---|
BUF_TOTAL_SIZE | 10240 | 动态,系统级 | SQL 日志 BUFFER 占用空间的上限,单位为 KB,取值范围(1024~1024000) |
BUF_SIZE | 1024 | 动态,系统级 | 一块 SQL 日志 BUFFER 的空间大小,单位为 KB,取值范围(50~409600) |
BUF_KEEP_CNT | 6 | 动态,系统级 | 系统保留的 SQL 日志缓存的个数,有效值范围(1~ 100) |
FILE_PATH | ..\LOG | 动态,系统级 | 日志文件所在的文件夹路径 |
PART_STOR | 0 | 手动 | SQL 日志分区存储,表示 SQL 日志进行分区存储的划分条件。0 表示不划分;1 表示 USER:根据不同用户分布存储 |
SWITCH_MODE | 0 | 手动 | 表示 SQL 日志文件切换的模式: 0:不切换 1:按文件中记录数量切换 2:按文件大小切换 3:按时间间隔切换 |
SWITCH_LIMIT | 100000 | 动态,系统级 | 不同切换模式 SWITCH_MODE 下,意义不同: 按数量切换时,一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。有效值范围(1000~ 10000000) 按文件大小切换时,一个日志文件达到该大小后,系统自动将日志切换到另一个文件中,单位为 M。有效值范围(1~ 2000) 按时间间隔切换时,每个指定的时间间隔,按文件新建时间进行文件切换,单位为分钟。有效值范围(1~ 30000) |
ASYNC_FLUSH | 1 | 动态,系统级 | 是否打开异步 SQL 日志功能。0:表示关闭;1:表示打开 |
FILE_NUM | 5 | 动态,系统级 | 总共记录多少个日志文件,当日志文件达到这个设定值以后,再生成新的文件时,会删除最早的那个日志文件,日志文件的命令格式为 DMSQL_实例名_日期时间.LOG。当这个参数配置成 0 时,只会生成两个日志相互切换着记录。有效值范围(0~1024)。例如,当FILE_NUM=0,实例名为 PDM 时,根据当时的日期时间,生成的日志名称为: DMSQL_PDM_20180719_163701.LOG, DMSQL_PDM_20180719_163702.LOG |
ITEMS | 0 | 手动 | 配置 SQL 日志记录中的那些列要被记录。 该参数是一个格式化的字符串,表示一个记录中的那些项目要被记录,格式为:列号:列号:列号。列如:3:5:7 表示第 3,第 5,第 7 列要被记录。 0 表示记录所有的列 1 TIME 执行的时间 2 SEQNO 服务器的站点号 3 SESS 操作的 SESS 地址 4 USER 执行的用户 5 TRXID 事务 ID 6 STMT 语句地址 7 APPNAME 客户端工具 8 IP 客户端 IP 9 STMT_TYPE 语句类型 10 INFO 记录内容 11 RESULT 运行结果,包括运行用时和 影响行数(可能没有) |
SQL_TRACE_MASK | 1 | 动态,系统级 | LOG 记录的语句类型掩码,是一个格式化的字符串,表示一个 32 位整数上哪一位将被置为 1,置为 1 的位则表示该类型的语句要记录,格式为:位号:位号:位号。列如:3:5:7 表示第 3,第 5,第 7 位上的值被置为 1。每一位的含义见下面说明(2~17 前提是:SQL 标记位 24 也要 1 全部记录(全部记录并不包含原始语句) 2 全部 DML 类型语句 3 全部 DDL 类型语句 |
MIN_EXEC_TIME | 0 | 动态,系统级 | 详细模式下,记录的最小语句执行时间,单位为毫秒。执行时间小于该值的语句不记录在日志文件中。有效值范围(0~4294967294) |
USER_MODE | 0 | 手动 | SQL 日志按用户过滤时的过滤模式,取值 0:关闭用户过滤 1:白名单模式,只记录列出的用户操作的 |
USERS | 空串 | 手动 | 打开 SVR_LOG_USER_MODE 时指定的用户列表。格式为:用户名:用户名:用户名 |
3、使用sysdba登录,执行以下SQL,更新配置
SP_REFRESH_SVR_LOG_CONFIG()
4、在dmdbms\log下面会生成dmsql_开头的文件
遇到的问题:
如果通过以上步骤,在FILE_PATH目录未生成dmsql开头的日志,请检查下目录权限是否正确