首页 > 其他分享 >KingbaseES V8R3集群运维案例---failover切换故障分析

KingbaseES V8R3集群运维案例---failover切换故障分析

时间:2023-09-18 16:24:47浏览次数:42  
标签:V8R3 log 运维 failover cluster kingbasecluster 日志 数据库

案例说明:
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

对于生产环境下数据库在部署前,需要检查此系统参数的配置,避免触发数据库宕机的故障。

标签:V8R3,log,运维,failover,cluster,kingbasecluster,日志,数据库
From: https://www.cnblogs.com/kingbase/p/17561155.html

相关文章

  • KingbaseES V8R3集群运维案例之---流复制异步同步及全同步模式配置
    案例说明:通过案例描述KingbaseESV8R3集群异步、同步及全同步强一致性配置,本案例为一主二备的架构。适用版本:KingbaseESV8R3集群架构:集群复制配置参数说明:1)sync_flag[kingbase@node101bin]$cat../etc/HAmodule.conf|grep-isync_#1->synchronouscluster,0->async......
  • kingbaseES V8R3集群运维案例之---集群部署前后ssh端口修改
    kingbaseESV8R3集群运维案例之---集群部署前后ssh端口修改案例说明:kingbaseESV8R3集群部署读写分离的集群是使用ssh的默认端口(22)部署,当改为非默认端口时,在部署中或部署后会因kingbasecluster脚本ssh的连接而失败,现提出以下解决方案。适用版本:KingbaseESV8R31......
  • KingbaseES V8R6运维案例之---数据库resetwal后启动失败
    KingbaseESV8R6运维案例之---数据库resetwal后启动失败案例说明:KingbaseESV8R6集群触发failover切换后,原主库自动recovery失败,现在需要将原主库启动为单实例的数据库运行,在执行了resetwal后,启动数据库失败。sys_log记录以下故障信息:适用版本:KingbaseESV8R6......
  • KingbaseES V8R6集群运维案例之---访问系统表unrecognized token- false故障
    KingbaseESV8R6集群运维案例之---访问系统表‘unrecognizedtoken:"false"’故障案例说明:KingbaseESV8R6集群在升级补丁后,主备库访问系统表出现‘unrecognizedtoken:"false"’故障,如下图所示:适用版本:KingbaseESV8R3/R6一、问题分析1、连接数据库执行系统表访问(如......
  • KingbaseES V8R6集群运维案例--cluster模式备份sys_backup.sh init故障
    KingbaseESV8R6集群运维案例--cluster模式备份sys_backup.shinit故障案例说明:通过脚本方式部署KingbaseESV8R6集群后,在‘cluster’模式备份,执行sys_backup.shinit时,出现“cannotcontain//for”log-path"option"错误,但是在‘single’模式下备份,无此错误。故障信息......
  • KingbaseES V8R6集群运维案例之---修改ssh端口后脚本创建互信
    案例分析:在KingbaseESV8R6集群部署时,需要建立节点之间ssh互信(或者使用securecmdd工具),在有的生产环境,为了安全起见会修改ssh的默认端口;KingbaseESV8R6集群部署提供了脚本用于创建ssh互信,如果修改了系统的ssh端口号后,也需要修改对应的脚本。适用版本:KingbaseESV8R6一、集群节......
  • K8S运维必备排查手册
      一、Pod相关问题及排查 1.Pod无法启动,如何查找原因? 使用kubectldescribepod[pod_name]-n[namespace_name]命令查看该Pod的状态信息,检查容器的状态和事件信息,判断是否出现问题。使用kubectllogs[pod_name]-n[namespace_name]命令查看该Pod容器的......
  • Linux企业运维人员最常用150个命令汇总2
    Linux企业运维人员最常用150个命令汇总 收录在日常运维杂烩系列命令功能说明线上查询及帮助命令(2个)man查看命令帮助,命令的词典,更复杂的还有info,但不常用。help查看Linux内置命令的帮助,比如cd命令。文件和目录操作命令(18个)ls......
  • 常见中间件的运维
    MysqlMysql常见中间件是用于管理和优化Mysql数据库集群的工具或软件。这些中间件可以提供负载均衡、高可用性、性能优化等功能。以下是关于部署和维护常见mysql中间件的一些指导:ProxySQL:部署:根据官方文档下载和安装ProxySQL配置ProxySQL实例,包括监听端口、数据库后......
  • 数字孪生技术在智慧运维中能够发挥什么作用?
    数字孪生技术在智慧运维中能够发挥多方面的作用,从提高效率到降低成本,再到改善决策过程,都有着显著的影响。下面我们将深入探讨数字孪生技术在智慧运维领域的多个应用领域。首先,通过数字孪生技术可以根据现实中的设备搭建3D场景,通过实时数据同步,运维人员可以更准确地监测设备的健......