KingbaseES R3集群网关检测工作机制:

1、Cluster下watchdog进程在固定间隔时间,通过ping 网关地址监控链路的连通性,如果连通网关地址失败,则修改cluster status,比如将“master”修改为“lost”,并摘除主节点的Cluster VIP。

2、在部署完成cluster后,会通过crond定时(每隔1分钟)运行network_rewind.sh脚本,在脚本通过函数checktrustip(),检测网关地址的连通性,如果网关地址无法连通,ping 3次后失败,则关闭kingbaseES数据库实例,清除DB VIP。

3、在部署完成cluster后,会通过crond定时(每隔1分钟)运行restartcluster.sh脚本,在脚本中通过函数 pingtrustip(),监控网关地址连通性,如果网关地址无法连通,ping 3次后失败,默认等待10s后,关闭cluster服务进程。

4、网关地址恢复正常后,restartcluster.sh进程会重新启动cluster服务进程,但是数据库进程仍然需要人工介入,手工启动。

案例信息:

一、案例分析过程

1、主备库连接网关失败

主库“2022-04-06 15:57:23”秒,cluster.log记录主库连接网关失败。

备库“2022-04-06 15:57:32”秒,cluster.log记录主库连接网关失败。

2、主备库尝试连接网关

=注:主备库按照参数HEALTH_CHECK_MAX_RETRIES,HEALTH_CHECK_RETRY_DELAY配置的阈值进行网关连接尝试。=

3、2022-04-06 15:57:44 主库多次连接网关失败,主库数据库服务被shutdown,触发主备切换。

4、2022-04-06 15:57:44 发生主备切换时,备库仍然也不能ping通网关,导致备库的数据库服务也被shutdown,切换失败。

5、最终结果是,因为主备库都和网关无法正常通讯,主备库数据库服务都是shutdown;但后面网关可以ping 通时,kingbasecluster服务被重启,但是数据库服务需要人工参与启动。

二、总结

1、KingbaseCluster的节点通过测试和网关地址的连通性来判断集群的运行环境及节点的状态。

2、如果网关ip出现故障,导致集群所有的节点无法连通网关地址时,集群为了保护后台数据库数据的一致性将会关闭集群,包括后台数据库服务。

3、在网关恢复正常后,将重启集群的管理服务(kingbasecluster),但是后台数据库服务需要人工判断后手工启动。

4、为了确保集群的稳定,可以配置多个网关地址,降低因为网关故障而导致集群停止服务的因素。

5、在新的版本中,提升了网关故障的处理能力,可以参阅官网文档《支持网关故障》章节。

https://help.kingbase.com.cn/stage-api/profile/document/kes/v8r3/html/highly/availability/high-a-config.html#id7

KingbaseES V8R3 集群专用机网关失败分析案例的更多相关文章

  1. KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析

    ​ 案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...

  2. KingbaseES V8R3集群维护案例之---在线添加备库管理节点

    案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...

  3. KingbaseES V8R3集群管理和维护案例之---failover切换wal日志变化分析

    ​ 案例说明: 本案例通过对KingbaseES V8R3集群failover切换过程进行观察,分析了主备库切换后wal日志的变化,对应用者了解KingbaseES V8R3(R6) failover ...

  4. KingbaseES V8R3集群管理维护案例之---集群迁移单实例架构

    案例说明: 在生产中,需要将KingbaseES V8R3集群转换为单实例架构,可以采用以下方式快速完成集群架构的迁移. 适用版本: KingbaseES V8R3 当前数据库版本: TEST=# s ...

  5. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)

    KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...

  6. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  7. KingbaseES R3 集群cluster日志切割和清理案例

    案例说明: 对于KingbaseES R3集群的cluster日志默认系统是不做切割和清理的,随着运行时长的增加,日志将增长为一个非常大的文件,占用比较大的磁盘空间,并且在分析问题读取大文件时效率很低 ...

  8. KingbaseES R6 集群修改物理IP和VIP案例

    在用户的实际环境里,可能有时需要修改主机的IP,这就涉及到集群的配置修改.以下以例子的方式,介绍下KingbaseES R6集群如何修改IP. 一.案例测试环境 操作系统: [KINGBASE@nod ...

  9. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...

随机推荐

  1. bat-配置环境变量

    查看环境变量 set 查看当前所有变量 set path 查看变量path的值 echo %xxx% 查看某一个环境变量 临时设置环境变量 set xxx=xxx set xxx= 永久设置环境变量 ...

  2. Python自动化办公:27行代码实现将多个Excel表格内容批量汇总合并到一个表格

    序言 (https://jq.qq.com/?_wv=1027&k=GmeRhIX0) 老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去.还好我会Python,分分钟 ...

  3. NC207028 第k小数

    NC207028 第k小数 题目 题目描述 给你一个长度为 \(n\) 的序列,求序列中第 \(k\) 小数的多少. 输入描述 多组输入,第一行读入一个整数 \(T\) 表示有 \(T\) 组数据. ...

  4. Day01 对前端的初步了解

    了解了工作性质以及流程 产品经理+UI+前端程序员+后端程序员+测试人员 了解了工作会做到的项目 pc端项目,后台管理系统,APP,小程序,移动端网页 了解了后续需要学到的课程 HTML+CSS Ja ...

  5. ReentrantLock 公平锁源码 第1篇

    ReentrantLock 1 这篇还是接着ReentrantLock的公平锁,没看过第0篇的可以先去看上一篇https://www.cnblogs.com/sunankang/p/16456342. ...

  6. day11 - 多线程

    1内容 进程.线程介绍 Java中 线程的实现方式 Thread 类 Runnable 接口 Callable 接口 线程相关的方法 线程安全问题 - 同步技术 线程等待唤醒机制 进程(Process ...

  7. 在 SQL Server 中使用 Try Catch 处理异常

    如何在 SQL Server 中使用 Try Catch 处理错误? 从 SQL Server 2005 开始,我们在TRY 和 CATCH块的帮助下提供了结构错误处理机制.使用TRY-CATCH的语 ...

  8. pinia 入门及使用

    自上月从上海结束工作回来 在家闲来无事 想写点东西打发时间 也顺便学习学习新的技术.偶然发现了 pinia 据说比vuex好用些 所以便搭了个demo尝试着用了下 感觉确实不错,于是便有了这篇随笔. ...

  9. 浅析golang shellcode加载器

    最近也是学习了一下有关shellcode进程注入的操作,简单分享一下通过golang进行实现shellcode加载器的免杀思路. 杀软的查杀方式 静态查杀:查杀的方式是结合特征码,对文件的特征段如Ha ...

  10. 日期字符串转为java.sql.Date

    日期字符串转为java.sql.Date类型 问题引出:在将一个日期字符串通过sql语句,插入到数据表的日期字段(字段类型是DATE),时遇到一个问题,如何将一个日期字符串转成java.sql.Dat ...