KingbaseES V8R3集群运维案例---failover切换故障分析
案例说明:
KingbaseES V8R3集群主库数据库服务重启后,failover切换失败,分析failover失败的具体原因。
适用版本:
KingbaseES V8R3
一、集群架构
node13----->主库(primary)
node25----->管理备库(standby)
node58----->备库(standby)
二、故障现象
1主2备集群, 172.31.*.13 172.31.*.25 172.31.*.58 。13是主;主机服务器内存不足报警,集成重启主服务器尝试解决,数据库未成功切换;
应用访问异常,报错无法访问数据库。
三、故障分析
搜集集群节点故障发生时间点前后的系统、集群及数据库日志:
1、系统日志:message等
2、集群日志:cluster.log、failover.log、recovery.log等
3、数据库日志:sys_log等
结合故障时间点前后,分析对应日志,综合判断故障原因。
日志分析:
1、node25节点,cluster.log获取,在“2023-04-27 19:20:42watchdog node state changed from [INITIALIZING] to [MASTER]“,kingbasecluster重启后,成为master节点,并且存在多次kingbasecluster服务重启。

2、node13节点,cluster.log获取,在”2023-04-27 19:21:07:successfully joined the watchdog cluster as standby node“,kingbasecluster重启后,成为standby节点,在后面的时间点,又多次重启kingbasecluster服务。

3、从node13的系统日志message获取,在“Apr 27 19:21:49 localhost [/bin/bash]: [sys_ctl -D data stop]”,执行数据库关库的命令,从对应的cluster.log及sys_log看,此时间点都无法连接数据库服务。
4、从cluster.log获取,在”2023-04-27 19:25:25: pid 16083: LOG: health checking retry count 10”,node25节点检测到连接主库数据库服务失败超过阈值(10)后,应该触发failover切换。
5、但是在“2023-04-27 19:25:25: pid 16083: LOG: failed to connect to watchdog command server socket”,连接kingbasecluster失败,导致无法触发failover切换。
6、在备库cluster.log的日志中相同时间点,出现同样的日志信息。
从以上日志分析,在“2023-04-27 19:21:49”,node13(数据库primary)执行关库服务后,在“2023-04-27 19:25:25”时间点,kingbasecluster检测数据库服务连接失败超过阈值后 ,触发failover切换,但是连接kingbascluster服务失败,导致切换未正常执行。从node13、node25节点cluster.log获悉,kingbasecluster服务多次重启导致主库数据库服务down后,未产生failover切换。
以下为主库重启后,数据库sys_log日志:

故障分析:
系统参数:RemoveIPC=yes|no
一些操作系统中RemoveIPC的默认值是yes。操作系统配置中RemoveIPC参数设置为yes,数据库运行过程中出现宕机,并显示如下日志消息。
FATAL: semctl(1463124609, 3, SETVAL, 0) failed: Invalid argument
原因分析
当RemoveIPC参数设置为yes时,操作系统会在对应用户退出时删除IPC资源(共享内存和信号量),从而使得KingbaseES服务器使用的IPC资源被清理,引发数据库宕机。
处理分析
设置配置文件/etc/systemd/logind.conf中的参数RemoveIPC参数为no。
四、问题总结
此次故障,是由于主机系统环境RemoveIPC=yes导致集群宕机(数据库服务及kingbasecluster服务),kingbasecluster在fatal状态就会导致退出进程,退出后就会重启。周而复始。
[kingbase@node102 bin]$ cat /etc/systemd/logind.conf|grep -i remove
RemoveIPC=no
对于生产环境下数据库在部署前,需要检查此系统参数的配置,避免触发数据库宕机的故障。
KingbaseES V8R3集群运维案例---failover切换故障分析的更多相关文章
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R3集群管理维护案例之---集群迁移单实例架构
案例说明: 在生产中,需要将KingbaseES V8R3集群转换为单实例架构,可以采用以下方式快速完成集群架构的迁移. 适用版本: KingbaseES V8R3 当前数据库版本: TEST=# s ...
- KingbaseES V8R3集群管理和维护案例之---failover切换wal日志变化分析
案例说明: 本案例通过对KingbaseES V8R3集群failover切换过程进行观察,分析了主备库切换后wal日志的变化,对应用者了解KingbaseES V8R3(R6) failover ...
- KingbaseES V8R3集群维护案例之---pcp_node_refresh应用
案例说明: 在一次KingbaseES V8R3集群切换分析中,运维人员执行了pcp_node_refresh,导致集群发生了failover的切换.此文档对pcp_node_refresh工具做了应 ...
- KingbaseES V8R3集群维护案例之---在线添加备库管理节点
案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...
- PB 级大规模 Elasticsearch 集群运维与调优实践
PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...
随机推荐
- Vue+SpringBoot+ElementUI实战学生管理系统-10.学生管理模块
1.章节介绍 前一篇介绍了教师管理模块,这一篇编写学生管理模块,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.实现效果 学生列表 修改学生 4.模块 ...
- 使用xampp安装部署mantis
快速教程请参考: 点击打开链接 http://download.csdn.net/detail/indexman/6830003 --------------------------- Dylan ...
- 如何基于three.js(webgl)引擎架构,实现3D密集架库房,3D档案室(3d机器人取档、机器人盘点、人工查档、设备巡检)
前言: 这是最好的时代,也是最坏的时代:是充满挑战的时代,也是充满机遇的时代.是科技飞速的时代,也是无限可能的时代. 近年来,人工智能(AI)技术的飞速发展已经席卷了全球,不断突破着技术边界,为各行 ...
- MySQL的随机排序(random orderby)
MySQL的随机排序(random orderby)是指在查询数据库时,将结果集以随机的方式排列.这种排序方式可以用于有趣的应用场景,例如实现随机音乐播放.广告推荐等. 要实现MySQL的随机排序,可 ...
- drf中认证源码流程
drf中认证流程 首先通过导入from rest_framework.views import APIView,然后通过ctrl+鼠标右键进入到APIView类中,apiview中定义了许多方法,我们 ...
- 关于“非法的前向引用(illegal forward reference)”的探究
1.问题: 有如下代码: public class Test { static { i = 0;// 给变量赋值可以正常编译通过 System.out.print(i);// 编译器会提示" ...
- 看看这份2023年MySQL终级面试题,提升你的内力,给你面试助力
1.MySQL 中有哪几种锁? (1)表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最 高,并发度最低. (2)行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最 ...
- 【Azure API 管理】APIM中证书更新问题
问题描述 每一年到期更新域名证书,APIM会中断服务,请问如何不中断服务? 问题解答 Azure API 管理允许在受信任的根证书和中间证书存储中的计算机上安装 CA 证书,分配证书的过程可能需要 1 ...
- 【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
问题描述 如上图中PaaS所不可见区域, 操作系统级别的内容我们并不知道具体的内容.如果当出现新的操作系统级别的安全漏洞时候,我们如何来确认当前所使用的Azure PaaS服务所在主机的OS已经修复了 ...
- Zabbix6.0使用教程 (一)—zabbix新增功能介绍2
上一篇我们已经介绍了部分zabbix6.0的新增功能,这期我们将继续为家详细介绍下余下的zabbix6.0新增功能,大家可以往下看. 六.监控项 6.1 自动类型选择 监控项配置表单会自动建议匹配的信 ...