达梦数据库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,可以看到日志文件里已经不会再记录这些语句的执行详细信息。
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Linux下数据库主备集群搭建的详细步骤: 1. 确认每个节点都已经安装了数据库,并且版本一致。如果没有安装,可以通过官网下载并安装。 2. 配置节点的IP地址和主机名。可以通过修改/etc/hosts文件和/etc/hostname文件来配置。 ```bash # 编辑 /etc/hosts 文件 sudo vi /etc/hosts # 添加以下内容 192.168.1.100 node1 192.168.1.101 node2 192.168.1.102 node3 # 编辑 /etc/hostname 文件 sudo vi /etc/hostname # 修改为节点对应的主机名 node1 node2 node3 ``` 3. 在主节点上创建一个集群控制文件,并在其中指定其他节点的IP地址和主机名。 ```bash # 创建集群控制文件 sudo mkdir /opt/dm_data/cluster sudo vi /opt/dm_data/cluster/dm.ini ``` 在dm.ini文件中添加以下内容: ```ini [NodeList] Node1=192.168.1.100 Node2=192.168.1.101 Node3=192.168.1.102 ``` 4. 在备节点上创建一个备份控制文件,并在其中指定主节点的IP地址和主机名。 ```bash # 创建备份控制文件 sudo mkdir /opt/dm_data/backup sudo vi /opt/dm_data/backup/dm.ini ``` 在dm.ini文件中添加以下内容: ```ini [NodeList] Node1=192.168.1.100 ``` 5. 在主节点上启动数据库,并确保主备节点之间可以正常通信。 ```bash # 启动数据库 sudo /opt/dmdbms/bin/dm_control start # 检查节点间连通性 ping node2 ping node3 ``` 6. 在主节点上创建一个实例,并将其配置为主实例。 ```bash # 创建实例 sudo /opt/dmdbms/bin/dm_create_instance -i dm_instance -p 123456 -l /opt/dm_data/dm_instance # 配置主实例 sudo /opt/dmdbms/bin/dm_control set -i dm_instance -n node1 -t master ``` 7. 在备节点上创建一个实例,并将其配置为备实例。 ```bash # 创建实例 sudo /opt/dmdbms/bin/dm_create_instance -i dm_instance -p 123456 -l /opt/dm_data/dm_instance # 配置备实例 sudo /opt/dmdbms/bin/dm_control set -i dm_instance -n node1 -t standy ``` 8. 在主节点上将主实例的日志传输到备实例。 ```bash # 配置日志传输 sudo /opt/dmdbms/bin/dm_control set -i dm_instance -t sync -s node2 -p 8888 sudo /opt/dmdbms/bin/dm_control set -i dm_instance -t sync -s node3 -p 8888 ``` 9. 在备节点上启动备实例,并确保备实例可以正常接收主实例的日志。 ```bash # 启动备实例 sudo /opt/dmdbms/bin/dm_control start # 检查日志传输 sudo /opt/dmdbms/bin/dm_control check -i dm_instance -s node1 -p 8888 ``` 10. 测试集群的高可用性和容错性,包括故障切换和恢复。 以上就是Linux下数据库主备集群搭建的全部步骤,如果您遇到了问题,可以参考数据库的官方文档或者联系数据库的客服人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值