暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PanweiDB集群脑裂问题:一次选主异常的处理

IT那活儿 2025-06-30
108

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!



问题描述

panweidb数据库集群运行过程中,cm仲裁组件用于集群切换选主,一个集群中cm的角色为一主多备;当cm角色都为primary时会导致集群在选主时异常。


问题复现

2.1 查看集群状态
此时数据库,主解决点在node2。
2.2 执行cm切换
2.3 再次查看集群状态
此时集群中cm仲裁组件已经异常,状态全部为primary。


问题处理

3.1 设置各个节点自动选举主节点
此时,会发现cm的状态都为standby,此时无法查看DB集群的状态。
3.2 将其中一个节点强制切换为Primary节点
分别在三个节点执行以下查询,并记录最大term值:
select term from pg_last_xlog_replay_location();
选取term值最大节点执行以下操作:
cm_ctl set--cmsPromoteMode=PRIMARY_F -I 1
至此,cm仲裁组件恢复。
3.3 执行数据库切换测试
数据库集群正常切换至node1。
3.4 执行failover切换测试
node1节点主机关闭,模拟failover:
数据库集群自动切换,且选主。
3.5 node1主机恢复后,该节点是否正常加入集群
3.6 集群正常后执行以下操作
cm_ctl set--cmsPromoteMode=AUTO -I 1
如果不执行该操作,会导致cm每次旧主节点异常时切换到新节点,待旧节点正常后,会重新获取leader。

END


本文作者:魏 强(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论