现场一个项目,在节点替换后,需要单独升级一个gclusterd的补丁,但在打补丁时,使用了root用户,且没有将补丁文件chown +x增加可执行的权限,导致该节点的gcluster服务处于CLOSE状态。
目录导航
现象
反馈gcadmin显示,刚做完节点替换的机器的gcluser服务为CLOSE状态
排查
查看gcluster进程的启动日志 system.log
发现了节点替换时的正常启动和shutdown关机信息,但后续没有看到再次启动的信息。
排查gcmonit日志 gcmonit.log
发现了尝试重启记录,但返回失败 -2。在失败10次后,不再尝试。
人工执行gclusterd
怀疑gclusted服务本身有问题,手工在操作系统gbase用户下执行gclusterd,发现报错: Permission denied, 而且错误开头是bash: 怀疑程序没有可执行权限,当成bash运行了。
查看gclusted程序文件
发现属主是root用户,而且没有可执行权限。且文件时间戳是2020年,不是操作当时的2021年。判断是更新了补丁
查找原因
确认在结点替换操作完成后,在做补丁替换时,没有切换到gbase用户,而是用的root用户操作的。而且没有chonw +x 增加可执行权限。
解决方案
将程序属主改成gbase:gbase 增加可执行权限。然后重启服务即可。