KingbaseES V8R3 集群专用机网关失败分析案例
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 集群专用机网关失败分析案例的更多相关文章
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群维护案例之---在线添加备库管理节点
案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...
- KingbaseES V8R3集群管理和维护案例之---failover切换wal日志变化分析
案例说明: 本案例通过对KingbaseES V8R3集群failover切换过程进行观察,分析了主备库切换后wal日志的变化,对应用者了解KingbaseES V8R3(R6) failover ...
- KingbaseES V8R3集群管理维护案例之---集群迁移单实例架构
案例说明: 在生产中,需要将KingbaseES V8R3集群转换为单实例架构,可以采用以下方式快速完成集群架构的迁移. 适用版本: KingbaseES V8R3 当前数据库版本: TEST=# s ...
- KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)
KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...
- KingbaseES V8R6集群维护之--修改数据库服务端口案例
案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...
- KingbaseES R3 集群cluster日志切割和清理案例
案例说明: 对于KingbaseES R3集群的cluster日志默认系统是不做切割和清理的,随着运行时长的增加,日志将增长为一个非常大的文件,占用比较大的磁盘空间,并且在分析问题读取大文件时效率很低 ...
- KingbaseES R6 集群修改物理IP和VIP案例
在用户的实际环境里,可能有时需要修改主机的IP,这就涉及到集群的配置修改.以下以例子的方式,介绍下KingbaseES R6集群如何修改IP. 一.案例测试环境 操作系统: [KINGBASE@nod ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
随机推荐
- Array 数组filter()方法,遍历数组返回符合条件的一个新数组
<script> const arr = [ { id: 1, name: "aa", isDone: false }, { id: 2, name: "bb ...
- bat-配置环境变量2-给PATH追加环境变量
使用setx /M path "%path%;%%winrar%%"这种方式修改环境变量存在的问题 对于 path 这种 既有用户级变量和系统级变量的变量 直接使用setx /M ...
- Node.js精进(6)——文件
文件系统是一种用于向用户提供底层数据访问的机制,同时也是一套实现了数据的存储.分级组织.访问和获取等操作的抽象数据类型. Node.js 中的fs模块就是对文件系统的封装,整合了一套标准 POSIX ...
- Python爬取某网站文档数据完整教程(附源码)
基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...
- 现代化CSS
Less Sass less Sass 与Less相比SASS更适合大型,底层的开发 Compass CSS核心技巧 CSS应用 现代化CSS方法论 CSS分层与面向对象 为什么要对CSS分层 CSS ...
- 攻防世界MISC进阶区 52-55
52.Excaliflag 得到一张png,扔进stegsolve中查看,找到flag 53.Just-No-One 得到一个exe,运行后居然是一个安装程序,看了一下没什么问题,扔进ida pro中 ...
- 5-21 拦截器 Interceptor
Spring MVC拦截器 什么是拦截器 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后(还有其它特殊时机)对请求进行处理或加工的特定接口 常见面试题:过滤器和拦截器的 ...
- Webpack学习系列 - Webpack5 怎么集成Babel ?
程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构. 本文摘要:主要通过实操讲解运用Webpack 5 如何集成 Babel Babel 对于前端 ...
- 【高并发】通过源码深度分析线程池中Worker线程的执行流程
大家好,我是冰河~~ 在<高并发之--通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程>一文中我们深度分析了线程池执行任务的核心流程,在ThreadPool ...
- php数组和对象相互转换
function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype ...