达梦数据库开启sql日志及配置

达梦数据库sql日志开启之后可以抓取数据库中运行的sql语句,并且包含了sql执行的耗时,sql日志还包括参数信息,错误信息等,对于排除数据库执行过的SQL语句或者批量优化SQL语句时此功能尤为重要。

官方文档中对sql日志的描述如下。建议开启sql日志时开启异步SQL,这样对数据库系统运行的影响较小。

达梦数据库开启sql日志及配置_第1张图片

操作步骤如下: 

1、创建SQL日志存放目录:

mkdir -p /opt/dmdbms/bin/bin/logcommit

2、检查SVR_LOG参数:

检查SVR_LOG参数是否为1,该参数的相关取值含义如下图

达梦数据库开启sql日志及配置_第2张图片

select * from v$parameter where para_name like ‘SVR_LOG%’; 
或
select * from v$dm_ini where para_name = ‘SVR_LOG’; 
或
查询DM数据库服务器的dm.ini文件
grep SVR_LOG dm.ini 

3、修改sqllog.ini文件如下

sqllog.ini 用于 sql 日志的配置 ,当且仅当 INI 参数 SVR_LOG=1 时使用。 如果在服务器启动过程中,修改了sqllog.ini 文件。修改之后的文件,只要调用过程 SP_REFRESH_SVR_LOG_CONFIG() 就会生效。
cd /data/dmdata/OA 

vi sqllog.ini 

BUF_TOTAL_SIZE = 10240 
BUF_SIZE = 1024 
BUF_KEEP_CNT = 6
[SLOG_ALL] FILE_PATH = /opt/dmdbms/bin/bin/logcommit  #创建的sql日志存放目录
PART_STOR = 0 
SWITCH_MODE = 2  #表示SQL日志文件切换的模式,2表示按文件大小切换
SWITCH_LIMIT = 256  #单个文件大小256M
ASYNC_FLUSH = 1  #开启异步SQL日志
FILE_NUM = 6  #总共记录6个日志文件
ITEMS = 0 
SQL_TRACE_MASK = 1   #LOG记录的语句类型掩码,默认为1,可以不修改
MIN_EXEC_TIME = 0 
USER_MODE = 0 
USERS = 

sqllog.ini详细配置如下图

达梦数据库开启sql日志及配置_第3张图片

达梦数据库开启sql日志及配置_第4张图片

达梦数据库开启sql日志及配置_第5张图片

设置sql日志为异步,按照文件大小进行切换,每个256M,6个文件循环写。根据实际情况修改

调用存储过程生效

SP_REFRESH_SVR_LOG_CONFIG(); 

 4、检查SVR_LOG等参数:


select * from v$process; --当开启了sql日志时此视图的trace_name字段会显示实际的SQL日志路径
也可以再次到实际的路径下查看是否产生了SQL日志

注意,以下SQL也可以查询SQL日志的路径,但查到的sql日志的路径(SVR_LOG_FILE_PATH的值)并不正确。即便重启数据库仍然查到的是错误的值

select * from v$parameter where para_name like ‘SVR_LOG%’; --查看SVR_LOG_FILE_PATH的值与之际配置的并不同
select * from v$dm_ini where para_name like ‘SVR_LOG%’; --查看SVR_LOG_FILE_PATH的值与之际配置的并不同

欢迎关注我的博客《Jackin's Blog - 知识改变命运》学习分享更多知识

你可能感兴趣的:(达梦数据库,数据库,达梦数据库,SQL日志)