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有关:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2024-02-06 KingbaseES 高可用组件sys_securecmdd之二---sys_securecmdd连接之UsePAM