KingbaseES V8R3 集群运维案例--kingbase_monitor.sh启动”two master“案例

发布时间 2023-06-06 15:38:02作者: KINGBASE研究院

案例说明:
KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现“two master”节点的故障,启动集群失败;通过手工sys_ctl启动各节点数据库服务后,并手工重启kingbasecluster(restartcluster.sh)服务,集群运行正常。故障现象如下图所示:

手工启动数据库服务流复制正常:

手工启动kingbasecluster服务集群状态正常:

适用版本:
KingbaseES V8R3

一、问题分析:

1、分析kingbase_monitor.sh执行过程
执行:sh -x kingbase_monitor.sh start

Tips:
集群在启动时,通过读取recovery.conf文件判断主备库,对于主库没有recovery.conf(recovery.done)文件,而对于备库在data目录下有recovery.conf文件,可以通过读取到文件信息后,判断节点是否是备库。

---如上图所示,在集群启动过程中通过查询节点recovery.conf文件获取判断主备库状态信息(主库无recovery.conf),在连接227节点获取到主库的primary_conninfo信息时,返回信息为空,故判断227节点也是master节点。

如下图所示,是正常启动的返回信息:

2、远程执行ssh连接227节点查看recovery.conf文件信息

---如上图所示,返回的结果为空。

正常查询结果:(返回primary_conninfo信息)

3、检查227节点recovery.conf文件
检查发现227节点的data目录存储位置有问题。

三、问题解决
因为227节点是刚刚重做的备节点,data目录原来做了软链接,重做后忘记建立链接,导致227节点的data目录访问错误,重新建立软连接后,集群正常,问题解决。