1、SQL日志文件
用户在 dm.ini 中配置 SVR_LOG 参数后就会打开 SQL 日志。
SQL 日志文件是一个纯文本文件。当 PART_STOR=0 时,以“dmsql_实例名_日期_时
间”命名,当 PART_STOR=1 时,以“dmsql_实例名_用户名_日期_时间”命名。缺省生
成在 DM 安装目录的 log 子目录下面,管理员可通过 sqllog.ini 参数 FILE_PATH 设置其生成路径。
SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其进行优化。
系统中 SQL 日志的缓存是分块循环使用,管理员可根据系统执行的语句情况及压力情况设置恰当的日志缓存块大小及预留的缓冲块个数。当预留块不足以记录系统产生的任务时,系 统 会 分 配 新 的用 后即 弃 的 缓 存 块 ,但 是总 的 空 间 大 小由 sqllog.ini 参 数BUF_TOTAL_SIZE 控制,管理员可根据实际情况进行设置。
打开 SQL 日志会对系统的性能会有较大影响,一般用于查错和调优的时候才会打开,默认情况下系统是关闭跟踪日志的。若需要跟踪日志但对日志的实时性没有严格的要求,又希望系统有较高的效率,可以设置 sqllog.ini 参数 SQL_TRACE_MASK 和 MIN_EXEC_TIME
只记录关注的相关记录,减少日志总量;设置 sqllog.ini 参数 ASYNC_FLUSH 打开 SQL日志异步刷盘提高系统性能。
2、sqllog.ini参数说明
sqllog.ini用于sql日志的配置,当且仅当INI参数SVR_LOG=1时使用。如果在服务器启动过程中,修改了sqllog.ini文件。修改之后的文件,只要调用过程SP_REFRESH_SVR_LOG_CONFIG() 就会生效。
详细参数请访问达梦在线手册:https://eco.dameng.com/
3、sqllog.ini参数配置
sqllog.ini 中配置块在 INI 参数 SVR_LOG=1 时使用。且 INI 参数 SVR_LOG_NAME
必须和 sqllog.ini 中的 SVR_LOG_NAME 名称一样,sqllog.ini 配置块才会生效。若
SVR_LOG 为 1,但不存在 sqllog.ini 或 sqllog.ini 配置错误,则配置无效,此时,使
用 DM.INI 中的系统默认值。
下面是一个 SVR_LOG_NAME 为 SLOG_ALL 的 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 = 1 SWITCH_MODE = 2 SWITCH_LIMIT = 128 ASYNC_FLUSH = 1 FILE_NUM = 5 ITEMS = 0 SQL_TRACE_MASK = 2:3:25 MIN_EXEC_TIME = 1500 USER_MODE = 0 USERS =
复制
4、SVR_LOG参数查询
sqllog.ini 中配置块在 INI 参数 SVR_LOG=1 时使用。查询 SVR_LOG 的值
SELECT * FROM SYS."V$DM_INI" A WHERE A.PARA_NAME='SVR_LOG'; 或者查询dm.ini文件 [dmdba@localhost dmdb]$ cat dm.ini |grep SVR_LOG
复制
5、开启SQL日志
# 加载 sqllog.ini 的配置信息 SQL> CALL SP_REFRESH_SVR_LOG_CONFIG(); DMSQL 过程已成功完成 已用时间: 3.240(毫秒). 执行号:700. #开启 SQL 日志 SQL> SP_SET_PARA_VALUE(1,'SVR_LOG',1); DMSQL 过程已成功完成 已用时间: 118.439(毫秒). 执行号:701.
复制
更多学习资料请访问:https://eco.dameng.com