首页  :: 新随笔  :: 管理

DM的SQL日志

Posted on 2023-02-08 14:43  高&玉  阅读(215)  评论(0编辑  收藏  举报

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日志