摘抄《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 时指定的用户列表。格式为:用户名:用户名:用户名 |
文章
阅读量
获赞