1. SQL日志概述
DM SQL日志的功能与MySQL Genaral日志的功能类似。
SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。SQL 跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其进行优化。
打开 SQL 日志会对系统的性能会有较大影响,一般用于查错和调优的时候才会打开,默认情况下系统是关闭 SQL 跟踪日志的。若需要 SQL 跟踪日志但对日志的实时性没有严格的要求,又希望系统有较高的效率,可以设置 sqllog.ini 参数 SQL_TRACE_MASK 和 MIN_EXEC_TIME 只记录关注的相关记录,减少日志总量;设置 sqllog.ini 参数 ASYNC_FLUSH 打开 SQL 日志异步刷盘功能,以提高系统性能。
2. 开启SQL日志
创建SQL日志目录
[dmdba]# mkdir /data/dmdbms/data/log/
检查SVR_LOG参数
SQL> select * from v$parameter where name like 'SVR_LOG';
ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT
----------- ------- ---- ----- --------- ---------- --------------------------------------------------------------------------------------------------------------------------- ------------- -----------
553 SVR_LOG SYS 0 0 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. 0 0
配置实例路径下sqllog.ini文件
[dmdba]# vi /data/dmdbms/data/DAMENG/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 = /data/dmdbms/data/log/ #SQL日志生成路径
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 128 #每个日志128M
ASYNC_FLUSH = 1
FILE_NUM = 5 #循环使用5个日志文件
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
[SLOG_ERROR]
SQL_TRACE_MASK = 23
FILE_PATH = /data/dmdbms/data/log/ #SQL日志错误日志路径
[SLOG_DDL]
SQL_TRACE_MASK = 3
[SLOG_LONG_SQL]
SQL_TRACE_MASK = 25
MIN_EXEC_TIME = 60000
使配置文件生效
SQL> SP_REFRESH_SVR_LOG_CONFIG();
开启SQLLOG模式
SQL> sp_set_para_value(1,'SVR_LOG',1);
检查SVR_LOG参数
SQL> select * from v$parameter where name like 'SVR_LOG';
ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT
----------- ------- ---- ----- --------- ---------- --------------------------------------------------------------------------------------------------------------------------- ------------- -----------
553 SVR_LOG SYS 1 1 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. 0 0
检查日志生成情况
[dmdba]# ll /data/dmdbms/data/log/
total 4
-rw-r--r-- 1 dmdba dinstall 1062 Feb 8 14:37 dmsql_DMSERVER_20230208_143700.log
3. 关闭SQLLOG
SQL> sp_set_para_value(1,'SVR_LOG',0);
DMSQL 过程已成功完成
已用时间: 9.731(毫秒). 执行号:501.
SQL> select * from v$parameter where name like 'SVR_LOG';
ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT
----------- ------- ---- ----- --------- ---------- --------------------------------------------------------------------------------------------------------------------------- ------------- -----------
553 SVR_LOG SYS 0 0 0 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. 0 1
更详细的信息请参考:https://eco.dameng.com/document/dm/zh-cn/ops/performance-optimization.html#4.1%20定位慢%20SQL
参考:https://eco.dameng.com/document/dm/zh-cn/ops/installation-install.html#2.3%20配置%20SQL%20日志 之配置SQL日志