案例说明:
麒麟信安操作系统,在部署了KingbaseES V8R6集群后,sys_monitor.sh在启动集群时,启动数据库服务失败,导致集群无法正常启动。后连接现场分析发现,此环境只要通过ssh或sys_securecmd工具远程启动数据库服务都会失败。操作系统版本如下:
适用版本:
KingbaseES V8R6
一、问题现象:
如下图所示,新部署的集群,通过sys_monitor.sh启动失败,但是通过sys_ctl手工启动主备节点数据库服务后,集群状态正常。
如下图所示,手工启动主备节点数据库服务后,集群状态正常:
二、问题分析:
1)分析sys_monitor.sh执行过程
执行: sh -x sys_monitor.sh start
如下图所示:
1、sys_monitor.sh脚本通过sys_securecmd远程连接节点启动数据库服务。
2、脚本反馈数据库服务已经被启动。
3、ksql连接数据库服务访问失败。
4、验证数据库服务启动失败,集群无法启动。
2)远程连接节点启动数据库服务测试
如上图所示,通过sys_securecmd或ssh连接远程节点启动数据库服务均失败。
3)查看数据库日志,在通过ssh或sys_securecmd远程启动数据库后,数据库会收到SIGTERM信号。
通过以上分析,数据库服务本地启动正常,但是通过ssh或securecmd工具远程启动后,数据库服务收到SIGTERM信号被终止,可能和操作系统有关。
三、问题解决:
后经操作系统人员分析,此故障为系统systemd服务bug ,打了补丁后,问题解决。下图为系统补丁。在此环境中,sys_securecmdd进程通过systemd服务管理。