案例说明:
KingbaseES V8R6集群,备库在执行‘repmgr standby switchover’时,切换失败,出现以下故障:
经检查发现是主库归档配置错误,主库出现归档失败导致。
适用版本:
KingbaseES V8R6
问题现象:
在备库执行:repmgr standby switchover,主备切换失败,出现上图错误。
问题分析:
在执行‘repmgr standby switchover’进行主备切换时,需要对primary环境进行检测,如果主库环境(比如:主库归档是否成功)不符合切换要求,切换将失败。
集群节点检查工具:repmgr node check
#描述
从复制角度对节点进行一些运行状况检查。
#选项
--csv
输出CSV格式(不使用于单个检查)。
--nagios
以Nagios格式输出(只使用与单个检查)。
检查的参数
--archive-ready
检查尚未归档的WAL文件数量。
--downstream
检查预期的下游节点是否都已连接。
--replication-lag
检查节点是否滞后(备节点有效)。
--role
检查节点是否有预期的角色。
--slots
检查节点是否存在非活跃的物理复制槽。
--missing-slots
检查是否缺少物理复制槽。
--data-directory-config
检查repmgr.conf的配置项是否与实际的数据目录匹配。
按照错误提示信息,在主库执行语句检测primary环境:
如上图所示,在检测主库是否有归档失败的(状态为:*.ready)wal日志数量时,检查发现主库有27个归档失败的wal日志文件。
如下图所示:主库归档正常的检测结果
检查sys_wal/archive_status目录下下是否有.ready状态的文件(归档失败)。
问题解决:
检查主库归档,发现归档路径及archive_command语句配置错误,正确配置后,主库归档成功,备库执行’repmgr standby switchover‘正常。