关键字:
备库无法启动KingbaseES集群、双主、人大金仓
问题描述
在KingbaseES集群运行中,由于主备网络故障或者备库promote操作等原因,可能会造成集群出现“双主”故障。
排查思路
1. 查看集群及数据库服务状态;
2. 通过业务信息确认新主;
3. 将备节点rejoin到集群;
4. 重新查看集群及数据库服务状态。
处理方法
- 查看集群及数据库服务状态;
在节点执行repmgr cluster show命令查看集群状态
node1显示如下:
node2显示如下
在节点执行repmgr service status命令查看服务状态
2. 通过业务信息确认新主,在不清楚业务的情况,可以通过查看控制文件信息中进行辅助确认;
在节点执行sys_controldata -D ${DATA}(数据目录) 命令查看控制文件信息
node1显示如下:
node2显示如下:
选主原则:TimeLineID大的节点选为新主节点;TimeLineID相同,oldestActiveXID越大的节点选为新主节点。
从上面控制文件信息获悉,node2的TimeLineID(2)大于node1的TimeLineID(1),并且node2的oldestActiveXID(0:1086)大于node1的oldestActiveXID(0:1084),故选择node2位新主。
3. 将备节点rejoin到集群
在node1节点执行sys_ctl stop -D ${DATA}[数据目录]命令,关闭数据库服务
在node1节点执行rejoin命令:
repmgr node rejoin -h 10.12.11.193 -U esrep -d esrep --force-rewind
4. 重新查看集群及数据库服务状态。
在节点执行repmgr cluster show命令查看集群状态
node1显示如下:
node2显示如下
在节点执行repmgr service status命令查看服务状态
node1显示如下:
node2显示如下
集群状态恢复正常,双主问题解决。