前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

达梦数据库数据守护集群:监视器管理实战

达梦数据库(DM)在高可用架构中引入了“数据守护系统”以保障主备库的协同运行与故障切换能力。监视器作为数据守护的核心组件,主要负责实时监控数据库运行状态,并在发生故障时自动接管或切换主备,确保数据库服务不中断。本文将简单介绍数据守护系统中的三类监视器:人工监视器单节点确认监视器,以及具备分布式选举能力的多实例确认监视器,了解它们在高可用架构中的实际作用和部署要点。

集群部署部分请参考:
https://mp.weixin.qq.com/s/cCnk2JpqKEbcy0BzakaNww

1. 人工监视器

人工监视器是基于监视器接口实现的一个命令行工具,用于监控数据守护系统的运行情况,可获取主备库状态、守护进程状态及主备库数据同步情况等信息。同时提供一系列命令来管理数据守护系统,如启动、停止守护进程的监控功能,执行主备库切换、备库故障接管等操作。

1.1. 配置人工监视器参数文件

在仲裁节点/dmdata/DAMENG目录下新建监视器参数文件dmmonitor_manual_GRP1.ini,内容如下:

$ cat dmmonitor_manual_GRP1.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /dm/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 2048
[GRP1]
MON_INST_OGUID = 918294
MON_DW_IP = 192.168.3.167:5436
MON_DW_IP = 192.168.3.168:5436

1.2. 启动人工监视器

登录仲裁机,启动监视器服务查看集群状态

/dm/bin/dmmonitor /dmdata/DAMENG/dmmonitor_manual_GRP1.ini

1.3. 查看数据守护集群状态

输入show 查看集群状态,可以监控到所有实例都处于Open 状态,所有守护进程也都处于Open 状态,以下图示信息为正常。

1.4. 查看帮助信息

输入help命令可以查看帮助信息。

1.5. 使用监视器切换主备节点(Switchover)

命令格式:

switchover <组名>.<实例名>

示例:

switchover GRP1.DAMENG02

注意:switchover 是优雅的主备切换(需主备数据一致且状态正常)。

2. 单节点确认监视器

单节点确认监视器在数据守护系统的故障自动切换模式下,起到状态确认和自动接管的作用。它能够自动通知实时备库接管为新的主库,从而实现故障自动切换,确保数据库服务的连续性

2.1. 配置确认监视器参数文件

在仲裁节点/dmdata/DAMENG目录下新建监视器参数文件dmmonitor_GRP1.ini,内容如下:

$ cat dmmonitor_auto_GRP1.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 2048
[GRP1]
MON_INST_OGUID = 918294
MON_DW_IP = 192.168.3.167:5436
MON_DW_IP = 192.168.3.168:5436

2.2. 注册监视器服务

将数据库监视器注册为服务,使用root用户,执行以下命令:

su - root
cd /dm/script/root
./dm_service_installer.sh -t dmmonitor -p GRP1 -monitor_ini /dmdata/DAMENG/dmmonitor_auto_GRP1.ini

启动确认监视器

systemctl start DmMonitorServiceGRP1.service

3. 多实例确认监视器

多实例确认监视器由多个监视器实例组成,通过选举机制(基于RAFT协议)确定一个Leader实例作为确认监视器提供服务,其他实例作为备库存在。当Leader实例出现故障时,系统会从备库中选举新的Leader继续提供服务,从而进一步提高集群的高可用性。由于raft协议特点,需要有超过半数节点(N/2+1)在线,才能进行选举,所以搭建多实例确认监视器时,需要有奇数个节点。

3.1. 环境信息

主机名

IP 地址

角色

dmdw01

192.168.3.167

主库

dmdw02

192.168.3.168

备库

dwmon01

192.168.3.169

多实例确认监视器01

dwmon02

192.168.3.170

多实例确认监视器02

dwmon03

192.168.3.171

多实例确认监视器03

3.2. 配置多实例确认监视器参数文件

在3个多实例确认监视器节点中均配置参数文件

一节点配置

# cat dmmonitor_GRP1.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dmdata/DAMENG/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 2048
MON_INST_NUM = 3
MON_NAME = MON1
MON_HB_INTERVAL = 60
MON_BRO_INTERVAL = 100
MON_VOTE_INTERVAL = 100
MON_ID = 1
MON_MID = 45614

[GRP1]
MON_INST_OGUID = 918294
MON_DW_IP = 192.168.3.167:5436
MON_DW_IP = 192.168.3.168:5436

[MON1]
MON_HOST = 192.168.3.169
MON_PORT = 8339
MON_INST_ID = 1

[MON2]
MON_HOST = 192.168.3.170
MON_PORT = 8340
MON_INST_ID = 2

[MON3]
MON_HOST = 192.168.3.171
MON_PORT = 8341
MON_INST_ID = 3

二节点配置中不同的地方

MON_ID = 2

三节点配置中不同的地方

MON_ID = 3

3.3. 初始化联机日志文件

多实例监视器相比于其他的监视器增加了联机日志文件,用于存储多实例监视器节点运行过程中产生或收到的日志包。因此,在使用配置文件启动多实例监视器实例之前,需要先初始化联机日志文件。命令格式如下:

dmmonitor RAFT_FILE_PATH=<file_path> RAFT_FILE_SIZE=<file_size> MON_MAGIC=<mon_magic> MON_NAME=<mon_name>

参数说明:

RAFT_FILE_PATH:监视器联机日志路径,需要与 dmmonitor.ini 中 MON_LOG_PATH 保持一致;

RAFT_FILE_SIZE:监视器联机日志文件大小,取值范围 512~10240,单位 MB;

MON_MAGIC:监视器联机日志文件魔数,参数范围 0~4294967294;

MON_NAME:监视器实例名,需要与 dmmonitor.ini 中 MON_NAME 保持一致。

为防止用户误执行联机日志文件初始化命令,将已有的联机日志文件覆盖掉,在指定路径下已存在相同名称的联机日志文件的情况下,初始化命令会执行失败,并返回-4558 错误码,提示文件已存在。

示例:

在3个多实例节点执行以下命令创建联机日志文件

$ cd /dm/bin
./dmmonitor  raft_file_path=/dmdata/DAMENG/log  raft_file_size=2048 mon_magic=3331  mon_name=MON1
./dmmonitor  raft_file_path=/dmdata/DAMENG/log  raft_file_size=2048 mon_magic=3331  mon_name=MON2
./dmmonitor  raft_file_path=/dmdata/DAMENG/log  raft_file_size=2048 mon_magic=3331  mon_name=MON3

执行过程打印如下:

[dmdba@dwmon01:/home/dmdba]$ cd /dm/bin
[dmdba@dwmon01:/dm/bin]$ ./dmmonitor  raft_file_path=/dmdata/DAMENG/log  raft_file_size=2048 mon_magic=3331  mon_name=MON1
dmmonitor init raft file success!
[dmdba@dwmon01:/dm/bin]$ ./dmmonitor  raft_file_path=/dmdata/DAMENG/log  raft_file_size=2048 mon_magic=3331  mon_name=MON2
dmmonitor init raft file success!
[dmdba@dwmon01:/dm/bin]$ ./dmmonitor  raft_file_path=/dmdata/DAMENG/log  raft_file_size=2048 mon_magic=3331  mon_name=MON3
dmmonitor init raft file success!

3.4. 注册监视器服务

将数据库监视器注册为服务,使用root用户,执行以下命令:

su - root
cd /dm/script/root
./dm_service_installer.sh -t dmmonitor -p GRP1 -monitor_ini /dmdata/DAMENG/dmmonitor_GRP1.ini

3.5. 启动确认监视器

systemctl start DmMonitorServiceGRP1.service

3.6. 检查多实例确认监状态

3.7. 参考资料

多实例确认监视器:
https://eco.dameng.com/community/post/20230928140133CZLSAQQBBGAUTRK37D

监视器:
https://eco.dameng.com/document/dm/zh-cn/pm/data-watch-monitor.html

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言