KingbaseES V8R3集群运维案例之---主库节点kingbasecluster服务启动失败

案例说明:
专用机环境,KingbaseES V8R3集群在运行两年后,主库节点重启系统后,导致kingbasecluster服务启动失败。

适用版本:
KingbaseES V8R3

一、问题现象
主库kingbasecluster启动失败,备库节点启动正常;主库节点cluster.log日志信息如下所示:

二、问题分析
1、检查主库节点是否有残留的pid文件,如果有pid文件,删除pid文件后重启kingbasecluster服务。

[kingbase@node208 bin]$ find /home/kingbase/ -name kingbasecluster.pid
/home/kingbase/cluster/R3HA/log/kingbasecluster/kingbasecluster.pid

2、手工启动主备节点数据库服务,检查主备流复制是否正常。
3、主备流复制如果正常,手工启动kingbasecluster服务,查看cluster.log日志。
如下所示,主库节点cluster.log日志显示,在进程创建socket服务时失败:

正常kingbasecluster启动后,会建立如下的socket服务:

4、检查主库节点9999端口是否被其他服务占用
如下所示,主库节点的9999端口被bash进程占用:

进一步检查bash进程:
如下所示,应该是主库节点系统重启后,集群执行了failover的切换,但未执行成功,一直占用9999端口,导致主库节点kingbasecluster进程无法创建基于9999端口的socket,进程启动失败:

三、问题解决
将占用9999端口的进程kill后,重启集群成功。

四、总结
从主库节点的cluster.log日志分析,应该是kingbasecluster进程启动后,无法创建基于9999的socket,从而导致服务启动失败。
在用sh -x kingbasecluster.sh start 分析时,发现在检查kingbasecluster进程启动时失败:

执行kingbasecluster进程启动语句:

kingbasecluster进程处于僵尸状态,应该是无法创建基于9999端口的socket有关:

posted @   天涯客1224  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2024-02-06 KingbaseES 高可用组件sys_securecmdd之二---sys_securecmdd连接之UsePAM
点击右上角即可分享
微信分享提示