news 2026/9/21 1:31:44

主备集群各参数分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
主备集群各参数分析
  • 环境介绍

存在一个主备集群,在第三台服务器中配置了确认监视器及非确认监视器,其配置如下。

配置项

主机

备机

业务IP及内网

192.168.116.135

192.168.116.134

实例名

GRP1_RT_01

GRP1_RT_02

实例端口

5236

5236

MAL端口

5336

5336

MAL守护进程端口

5346

5346

守护进程端口

5556

5556

其dmwatcher.ini文件配置如下。

  • 验证参数

参数名

说明

DW_MODE

切换模式,缺省为 MANUAL

MANUAL:故障手动切换模式

AUTO:故障自动切换模式

INST_ERROR_TIME

数据库故障认定时间,单位秒,取值范围为 3~1800,缺省 15 秒没有收到数据库发送的状态信息,即认定其监控的数据库出现故障

INST_RECOVER_TIME

备库故障恢复检测时间间隔,单位秒,取值范围 3~86400,缺省每 60 秒检查一下备库状态,满足故障恢复条件时,启动历史数据同步流程。

数据守护系统启动完成后、Switchover 主备切换后、Takeover 备库接管后以及强制 Open 主库后,主库守护进程 INST_RECOVER_TIME 内存值会强制设置成 3,确保尽快启动数据同步。另外,还可以通过监视器命令 set recover time 修改 INST_RECOVER_TIME 内存值。

INST_AUTO_RESTART

是否自动重启数据库实例,0:不自动重启; 1:自动重启。缺省为 0

实验流程:

  1. 执行kill -9 命令,强行关闭GRP1_RT_01的实例,观察GRP1_RT_01守护进程、GRP1_RT_02守护进程、监视器的情况。

预期结果:

  1. 关闭GRP1_RT_01的实例后,GRP1_RT_01守护进程在20内秒中接收不到GRP1_RT_01实例的信息,认定GRP1_RT_01实例故障。20秒后自动拉起GRP1_RT_01实例并在60秒内检查该实例状态,若满足故障恢复条件,开始历史数据同步。
  2. 关闭GRP1_RT_01的实例后,GRP1_RT_02守护进程接收到GRP1_RT_01实例故障的信息并接收来自监视器的TAKEOVER命令,切换GRP1_RT_02实例为PRIMARY提供数据库服务。3、GRP1_RT_01实例自动拉起后,GRP1_RT_02发送归档日志至GRP1_RT_01实例开始数据同步。

实验截图:

①GRP1_RT_01守护进程日志截图:

18:23:47失去了与本地实例的连接。

18:23:50期间进行了多次检测,检测不到GRP1_RT_01实例,认定为该实例故障。

18:23:51不断接收到GRP1_RT_02守护进程的TAKEOVER信息,并完成主备切换。

18:24:07重启本地实例。

18:24:12设置守护进程为UNIFY EP状态,准备数据同步。

②GRP1_RT_02守护进程日志截图:

18:23:50.673接收到GRP1_RT_01实例故障的信息。

18:23:50.736接收到监视器的TAKEOVER命令,准备切换主备。

18:23:51完成主备切换。


18:24:14发送归档日志至GRP1_RT_01实例,开始数据恢复并很快完成了故障恢复。

实验结果:

  1. GRP1_RT_01守护进程在多次检测不到GRP1_RT_01实例的存在后,立即判断GRP1_RT_01实例故障。20秒后自动拉起GRP1_RT_01实例,并在5秒后开始数据同步。
  2. 关闭GRP1_RT_01实例后,GRP1_RT_02守护进程接收来自监视器的TAKEOVER命令完成主备切换。GRP1_RT_01实例被拉起后,发送归档日志至GRP1_RT_01实例开始数据同步。
  • 总结

本次实验中,该主备集群为自动切换模式,数据库故障认定时间为20秒,备份故障恢复检测时间间隔60秒,但在TAKEOVER命令切换后,会强制设置为3秒,守护进程会自动拉起本地实例。

在GRP1_RT_01实例被强制关闭后,GRP1_RT_01进程在多次检测不到GRP1_RT_01实例存在后,直接认定GRP1_RT_01实例故障,同时监视器向GRP1_RT_02进程发送TAKEOVER命令,切换GRP1_RT_02实例提供数据库服务。20秒后,GRP1_RT_01守护进程自动拉起GRP1_RT_01实例。5秒后,GRP1_RT_01实例接收GRP1_RT_02的归档日志,开始历史数据同步,此过程符合预期实验结果,也基本符合参数设置。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 21:31:02

工业以太网边缘设备中HAL_UART_RxCpltCallback集成指南

如何用HAL_UART_RxCpltCallback打造工业边缘设备的高效串口通信引擎?在工厂自动化现场,你是否遇到过这样的场景:PLC的数据还没收完,扫码枪又发来一串指令;Modbus报文刚解析一半,HMI界面却卡顿了&#xff1f…

作者头像 李华
网站建设 2026/9/20 21:30:00

CUDA安装后ldconfig未更新?手动添加库路径解决问题

CUDA安装后ldconfig未更新?手动添加库路径解决问题 在部署深度学习环境时,你是否遇到过这样的场景:明明已经安装了完整的CUDA Toolkit,NVIDIA驱动也正常工作,PyTorch或TensorFlow却始终无法启用GPU?运行 to…

作者头像 李华
网站建设 2026/9/20 16:08:30

Pyenv global设置默认Python版本影响Miniconda使用吗

Pyenv global设置默认Python版本影响Miniconda使用吗 在现代Python开发中,一个常见的困扰是:当我在系统中用 pyenv global 设定了默认的Python版本后,会不会“污染”或干扰我通过 Miniconda 创建的虚拟环境?特别是当我们使用像 Mi…

作者头像 李华
网站建设 2026/9/20 16:09:15

Linux crontab定时任务调用Miniconda环境执行PyTorch脚本

Linux crontab定时任务调用Miniconda环境执行PyTorch脚本 在AI工程实践中,一个常见的需求是让模型训练或推理脚本每天凌晨自动运行——比如推荐系统需要基于最新用户行为数据重新生成特征,或者监控系统要每小时对传感器数据做一次异常检测。理想情况下&a…

作者头像 李华
网站建设 2026/9/20 16:05:03

ST7735与MCU通过SPI连接的操作指南

从零点亮一块1.8寸TFT屏:ST7735 MCU的SPI实战全解析你有没有过这样的经历?手里的STM32或ESP32开发板一切正常,传感器数据也读得出来,可一到驱动那块小小的1.8英寸TFT屏时,屏幕却死活不亮——要么白屏、要么花屏、甚至…

作者头像 李华
网站建设 2026/9/20 16:08:15

circuit simulator核心要点:仿真精度与步长设置技巧

仿真精度的命门:如何拿捏电路仿真中的时间步长?你有没有遇到过这样的情况?辛辛苦苦搭好一个Buck电路,信心满满点下“运行”,结果波形看起来怪怪的——开关节点的振铃不见了,电感电流像是被“磨平”了&#…

作者头像 李华