关键字
集群脑裂、双主、恢复集群
问题描述
在KingbaseES中部署了两节点集群,主库故障后,集群进行恢复,但是只有备库提升为主库,原主库未能够进行恢复。当手动启动原主库后,发现集群出现双主。
集群自动恢复结果:
手动启动原主后,报错“node ‘node1’(ID:1) is running but the repmgr node record is inactive”:
问题分析
在部署集群时使用了默认参数recovery=standby,此参数表示仅恢复备库,集群中备库故障后能够进行自动恢复,保持集群状态正常。但是如果主库故障后,仅支持备库升主,但为了保证数据不丢失,原主库不会自动进行恢复。
解决方案
在当前这种状态下,可以执行如下操作恢复集群:
1、在原主库节点停掉原主库
./sys_ctl -D ../data/ stop
2、使用脚本一键恢复节点到主机
./repmgr node rejoin -Uesrep -desrep -p55111 -h192.168.0.201 --no-check-wal --force-rewind
执行成功后再次查看集群信息,可以看到已经完成恢复