注册
DM8:达梦数据库开启SQL日志sqllog
技术分享/ 文章详情 /

DM8:达梦数据库开启SQL日志sqllog

祢真伟大 2023/06/14 4188 6 0

环境介绍

  • 在使用数据库过程中,有时候想要查看数据库执行的SQL日志,由于V$SESSIONS 系统视图默认保留10000条,不满足需求,可以配置开启SQLLOG;
SELECT COUNT(*) FROM V$SQL_HISTORY; --输出结果: 10000

1 修改配置文件sqllog.ini

[dmdba@dmrw-26 home]$ cd /home/dmdba/dmdata5236/DAMENG/ [dmdba@dmrw-26 DAMENG]$ vi 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 ##SQL 日志分区存储, ##表示 SQL 日志进行分区存储的划分条件。 ##0 表示不划分;1 表示 USER:根据不同用户分布存储 SWITCH_MODE = 2 ## 日志文件切换模式 2 按文件大小切换 SWITCH_LIMIT = 256 ## 文件大小限制,默认128,建议256 ,单位MB ASYNC_FLUSH = 1 ## 日志刷盘模式默认1 异步刷盘,0实时刷盘(要考虑性能) FILE_NUM = 20 ## 打印日志文件个数,默认5个,建议配置20 ITEMS = 0 ## 记录SQL全部内容信息 默认 0 SQL_TRACE_MASK = 1 ## 打印全部类型SQL日志 默认 1 MIN_EXEC_TIME = 0 ## 详细模式下,记录的最小语句执行时间,单位毫秒 USER_MODE = 0 ## SQL 日志按用户过滤时的过滤模式,取值0:关闭用户过滤 USERS = ## 打开 SVR_LOG_USER_MODE 时指定的用户列表。格式为:用户名:用户名:用户名 [SLOG_ERROR] SQL_TRACE_MASK = 23 FILE_PATH = ../log [SLOG_DDL] SQL_TRACE_MASK = 3 [SLOG_LONG_SQL] SQL_TRACE_MASK = 25 MIN_EXEC_TIME = 60000

2 开启与关闭 DMSQLLOG

  • 登陆达梦数据库管理工具或 disql 执行命令

2.1 开启 sql 日志记录功能

  • 开启后注意观察数据库log目录的dmsql开头的日志文件,是否达到256MB后正常切换,达到20个日志文件后自动循环覆盖,若没有循环覆盖,磁盘会很快备占用完;若有问题请检查配置文件。
call SP_SET_PARA_VALUE(1,'SVR_LOG',1);

2.2 查询 sql 日志记录是否开启:0 关闭,1/2/3开启);

select SF_GET_PARA_VALUE(1,'SVR_LOG')union ALL select SF_GET_PARA_VALUE(2,'SVR_LOG');

2.3 关闭 sql 日志记录功能

call SP_SET_PARA_VALUE(1,'SVR_LOG',0);

3 sqllog.ini 详细介绍

  • 引用DM8 系统管理员手册内容
  • 2.1.1.5 sqllog.ini
  • sqllog.ini用于SQL日志的配置,当且仅当INI参数SVR_LOG=1时使用。如果在服务器启动过程中,修改了sqllog.ini文件。修改之后的文件,只要调用过程SP_REFRESH_SVR_LOG_CONFIG() 就会生效。sqllog.ini的详细配置请参考表2.29。
    表 2.29 sqllog.ini 的配置项

sqllog01.png
sqllog02.png
sqllog03.png
sqllog04.png
sqllog05.png
sqllog06.png
sqllog07.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服