KingbaseES R3 集群主备切换信号量(semctl)错误故障分析案例
案例说明:
某项目KingbaseES R3 一主一备流复制集群在主备切换测试中出现故障,导致主备无法正常切换;由于bm要求,数据库相关日志无法从主机中获取,只能在现场进行分析;通过对比主备切换时的时间点,在集群的failover.log、recovery.log及数据库的sys_log日志中,发现故障原因。在切换过程中新主库(原备库)数据库启动时,出现下图所示的故障(semctl),导致数据库无法正常启动,一直处于recovery状态,导致集群主备切换后,原备库无法正常提升为新主库,集群出现“双备”状态,主备切换失败。在调整了信号量相关的参数后,主备切换亦无出现问题,切换故障问题解决。
sys_log日志信息:
由于此项目sm,以下日志为测试环境复现获取:
=== 从以上信息获知,在sys_log中出现的semctl(setval)故障,应该和数据库主机中信号量的配置kernel.sem参数有关,可以调整信号量的参数大小。===
6)检测操作系统信号量的相关配置
如下图所示,系统信号量的相关配置: