news 2026/9/19 12:30:57

主备集群各参数分析

作者头像

张小明

前端开发工程师

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/18 15:45:16

Markdown语法高亮显示PyTorch代码片段技巧分享

Markdown 中优雅展示 PyTorch 代码:从语法高亮到开发环境一体化实践 在深度学习项目日益复杂的今天,我们不仅要写出能跑通的模型,更要让别人看懂、复现甚至在此基础上继续迭代。一个训练脚本写完就扔进仓库,没有任何注释和上下文&…

作者头像 李华
网站建设 2026/9/18 5:46:35

如何在Miniconda中切换Python版本以适配不同PyTorch需求

如何在 Miniconda 中灵活切换 Python 版本以适配不同 PyTorch 项目需求 在深度学习项目开发中,你是否曾遇到这样的场景:刚为最新版 PyTorch 搭建好 Python 3.11 环境,结果接手一个老项目时发现它只兼容 Python 3.8?或者团队成员运…

作者头像 李华
网站建设 2026/9/4 4:05:46

PyTorch安装避坑指南:使用Miniconda管理Python3.11与CUDA版本冲突

PyTorch安装避坑指南:使用Miniconda管理Python3.11与CUDA版本冲突 在深度学习项目中,你是否经历过这样的场景:满怀期待地写完模型代码,运行时却发现 torch.cuda.is_available() 返回了 False?明明装了GPU驱动&#xff…

作者头像 李华
网站建设 2026/9/11 16:50:16

PyTorch安装时pip与conda混用的危害及最佳实践建议

PyTorch安装时pip与conda混用的危害及最佳实践建议 在深度学习项目中,一个看似微不足道的环境配置问题,往往会在数小时训练后突然抛出 ImportError 或 Segmentation fault,导致整个实验中断。更糟的是,当你试图在另一台机器上复现…

作者头像 李华
网站建设 2026/9/11 12:27:07

Linux系统下利用Miniconda安装PyTorch并连接Jupyter Notebook

Linux系统下利用Miniconda安装PyTorch并连接Jupyter Notebook 在深度学习项目开发中,一个常见但令人头疼的问题是:为什么代码在一个机器上跑得好好的,换到另一台设备就报错?更糟的是,明明昨天还能训练的模型&#xff…

作者头像 李华