达梦数据库DM8-慢日志配置和简单使用

系列文章目录

第10章 达梦数据库DM8-慢日志配置

这里再放一个达梦云适配中心链接,里面的文档模块有很多官方教程,社区模块也可以查询或者提出各类使用问题
达梦云适配中心


本文环境

系统环境:
windows 7 sp1

软件镜像:
dm8_20201112_x86_rh7_64_ent_8.1.1.144.iso

1、达梦数据库sql日志

达梦数据库sql日志记录的内容主要由实例数据存放目录下的sqllog.ini配置文件决定,默认情况下达梦数据库不开启sql日志记录。修改该配置文件后,并且开启日志记录,可以达到控制达梦数据库sql日志记录我们想要的sql执行过程信息,比如记录执行计划时间超过1s以上的慢查询,有助于我们对数据库慢查询、操作语句进行重点优化。

2、sqllog.ini

sql日志配置文件是在新建数据库时,和dm.ini数据库配置文件一起自动生成的,位于数据库实例目录下。初始化的文件内容如下:不对sql作筛选,全部记录。
在这里插入图片描述

2.1 打开和关闭数据库sql日志记录

打开语句:(也可以通过直接修改dm.ini配置文件里的SVR_LOG参数)

sp_set_para_value(1,'SVR_LOG',1);
执行后立即生效

根据sqllog.ini配置文件,我们去到达梦数据库软件目录下的log目录,找到dmsql_‘实例名’.log文件,该日志文件就是Sql日志记录文件。
在这里插入图片描述
打开可以看到,日志记录了刚刚执行的sql语句的详细执行过程,以及客户端信息。
在这里插入图片描述

关闭语句:

sp_set_para_value(1,'SVR_LOG',0);
执行后立即生效

2.2 sqllog.ini主要配置参数介绍

在达梦数据库软件目录下的doc目录,打开DM8系统管理员手册.pdf,搜索sqllog.ini可查看详细参数介绍。
MIN_EXEC_TIME:详细模式下,记录的最小语句执行时间,单位为
毫秒。执行时间小于该值的语句不记录在日志文件中。有效值范围(0~ 4294967294)
BUF_TOTAL_SIZE :SQL 日志 BUFFER 占用空间的上限,单位为 KB,一般保持默认设置即可。
BUF_SIZE:一块 SQL 日志 BUFFER 的空间大小,单位为 KB,一般保持默认设置即可。
BUF_KEEP_CNT:系统保留的 SQL 日志缓存的个数,一般保持默认设置即可。
FILE_PATH:sql日志文件存放路径,可以根据自身需要修改路径,相对路径和绝对路径都支持。
PART_STOR:SQL 日志分区存储,表示 SQL 日志进行分区存储的划分条件。0 表示不划分;1 表示 USER:根据不同用户分布存储。如果应用用户不多可以保持0不划分。
SWITCH_MODE:表示 SQL 日志文件切换的模式:0:不切换;1:按文件中记录数量切换;2:按文件大小切换;3:按时间间隔切换。一般建议设置为2.
SWITCH_LIMIT:不同切换模式 SWITCH_MODE 下,意义不同:
按数量切换时,一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。有效值范围(1000~ 10000000);
按文件大小切换时,一个日志文件达到该大小后,系统自动将日志切换到另一个文件中,单位为 M。有效值范围(1~ 2000);
按时间间隔切换时,每个指定的时间间隔,按文件新建时间进行文件切换,单位为分钟。有效值范围(1~ 30000)
ASYNC_FLUSH:是否打开异步 SQL 日志功能。0:表示关闭;1:表示打开。一般建议打开,减少性能影响。
FILE_NUM:总共记录多少个日志文件,当日志文件达到这个设定值以后,再生成新的文件时,会删除最早的那个日志文件,日志文件的命令格式为 DMSQL_实例名_日期时间.LOG。
ITEMS:配置 SQL 日志记录中的那些列要被记录。一般保持0记录所有列信息即可。
SQL_TRACE_MASK:LOG 记录的语句类型掩码,格式为:位号:位号:位号。列如:3:5:7 表示第 3,第 5,第 7 位上的值被置为 1。每一位的含义见
下面说明(2~17 前提是:SQL 标记位 24 也要置):
1 全部记录(全部记录并不包含原始语句)
2 全部 DML 类型语句
3 全部 DDL 类型语句
4 UPDATE 类型语句(更新)
5 DELETE 类型语句(删除)
6 INSERT 类型语句(插入)
7 SELECT 类型语句(查询)
8 COMMIT 类型语句(提交)
9 ROLLBACK 类型语句(回滚)
10 CALL 类型语句(过程调用)
11 BACKUP 类型语句(备分)
12 RESTORE 类型语句(恢复)
13 创建对象操作(CREATE DDL)
14 修改对象操作(ALTER DDL)
15 删除对象操作(DROP DDL)
16 授权操作(GRANT DDL)
17 回收操作(REVOKE DDL)
22 绑定参数
23 存在错误的语句(语法错误,语义分析错误等)
24 是否需要记录执行语句
25 是否需要打印计划和语句执行的时间
26 是否需要记录执行语句的时间
27 原始语句(服务器从客户端收到的未加分析的语句)
28 是否记录参数信息,包括参数的序号、数据类型和值
29 是否记录事务相关事件

2.3 修改sqllog.ini并生效

下面是一个参考配置,MIN_EXEC_TIME 设置为100,过滤了小于100ms的执行sql日志,路径的slog文件夹需要手动创建,且因为本文环境是windows,所以路径文件间隔符为反斜杠,如果为Linux系统请自行修改,修改sqllog.ini配置文件时请先备份初始化的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\slog
PART_STOR = 0
SWITCH_MODE = 2 //0:不切换 1:按文件中记录数量切换 2:按文件大小切换 3:按时间间隔切换
SWITCH_LIMIT = 256 //有效值范围(1000~ 10000000),有效值范围(1~ 2000),效值范围(1~ 30000)
ASYNC_FLUSH = 1
FILE_NUM = 20
ITEMS = 0
SQL_TRACE_MASK = 2:3:22:25:28
MIN_EXEC_TIME = 100
USER_MODE = 0
USERS =

修改后需要重新关闭日志,打开日志才能生效。

sp_set_para_value(1,'SVR_LOG',0);
sp_set_para_value(1,'SVR_LOG',1);

我们重新执行了刚刚的查询语句,然后打开日志文件查看,因为执行时间都小于100ms,可以看到日志文件里已经不会再记录这些语句的执行详细信息。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值