注册
DM8 开启 sql跟踪日志
专栏/Database Thinking/ 文章详情 /

DM8 开启 sql跟踪日志

胡li 2021/10/08 4003 5 0
摘要 DM8 开启 sql跟踪日志,对sql跟踪日志的大小和切换方式进行配置;


摘抄《DM8系统管理员手册.pdf》

sqllog.ini用于sql日志的配置,当且仅当INI参数SVR_LOG=1时使用。sql跟踪日志默认配置是根据文件大小超过128M后将切换到下一个日志文件,共有5个日志文件,默认配置记录的时间较短,容易被覆盖。生成的sql跟踪日志实时记录所有在数据库层面执行的sql,包括执行耗时,可以通过生成的sql日志分析慢sql,定位应用层面发过来的错误sql;

1、使用SYSDBA用户登录,执行下以SQL,开启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 =

注:以上配置项说明请参考文章最末尾处的表格

3、使用sysdba登录,执行以下SQL,更新配置

SP_REFRESH_SVR_LOG_CONFIG()

或者将svr_log先关闭,待配置完成后再打开

sp_set_para_value(1,'SVR_LOG',0);--关闭svr_log日志跟踪
sp_set_para_value(1,'SVR_LOG',1);--开启svr_log日志跟踪

4、在dmdbms\log下面会生成dmsql_开头的文件

附录一:

参数名 缺省值 属性 说明
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 下,意义不同:(1)按数量切换时,一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。有效值范围(1000~ 10000000);(2)按文件大小切换时,一个日志文件达到该大小后,系统自动将日志切换到另一个文件中,单位为 M。有效值范围(1~ 2000);(3)按时间间隔切换时,每个指定的时间间隔,按文件新建时间进行文件切换,单位为分钟。有效值范围(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 运行结果,包括运行用时和影响行数(可能没有)
MIN_EXEC_TIME 0 动态,系统级 详细模式下,记录的最小语句执行时间,单位为毫秒。执行时间小于该值的语句不记录在日志文件中。有效值范围(0~4294967294)
USER_MODE 0 手动 SQL 日志按用户过滤时的过滤模式,取值0:关闭用户过滤;1:白名单模式,只记录列出的用户操作的
USERS 空串 手动 打开 SVR_LOG_USER_MODE 时指定的用户列表。格式为:用户名:用户名:用户名
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服