当前位置: 首页 > ops >正文

金仓数据库主备切换故障解析,一次由相对路径引发的失败与切换流程解读

一、故障现象:主备切换遭遇路径陷阱

某环境数据库集群执行手动切换时,在备节点执行./repmgr standby switchover命令后出现异常报错:
查看当前集群状态
./repmgr cluster show
在这里插入图片描述
集群状态检查显示主备节点均处于正常运行状态,但切换时系统提示数据目录异常。
在备节点执行

./repmgr standby switchover

出现如下报错
在这里插入图片描述

二、根因分析:相对路径引发的连锁反应

根据提示执行检查命令

./repmgr node check --data-directory-config

在这里插入图片描述

检查数据库目录,这里发现数据库启动使用了相对路径启动
在这里插入图片描述
看来repmgr在切换时会严格校验路径一致性,相对路径回导致路径解析偏差

三、解决方案
# 暂停集群管理服务
./repmgr service pause# 安全停止异常实例(使用相对路径)
./sys_ctl -D ../data/ stop# 标准化启动(强制使用绝对路径)
./sys_ctl -D /home/cli/cluster/install/kingbase/data start# 恢复集群管理
./repmgr service unpause

在这里插入图片描述
然后执行主备切换就正常了

./repmgr standby switchover

在这里插入图片描述
切换后的状态检查
在这里插入图片描述

三、金仓数据库手动主备切换流程

金仓数据库使用repmgr standby switchover命令对主备集群执行手动切换,该命令在备节点执行,把主节点降级为备库,把当前备节点提升为主库。
以下是总结的部分切换流程

  1. 前置健康检查

    • 验证主备节点连通性,集群状态
    • 检查主备数据同步情况,日志归档状态
  2. HA服务暂停

    repmgr service pause  # 暂停自动故障转移
    
    • 停止repmgr守护进程
    • 锁定集群状态变更
  3. 数据一致性保障

    • 主节点执行CHECKPOINT强制刷盘
  4. 主节点优雅下线

    sys_ctl -D $DATA stop -m fast -W
    
    • 终止客户端连接
    • 完成未提交事务回滚
  5. 备节点升主操作

  • vip判断及加载(若有)
  • 执行升主
sys_ctl -D $DATA promote
  1. HA服务恢复
 repmgr service pause  # 暂停自动故障转移
  • 停止repmgr守护进程
  • 锁定集群状态变更
http://www.xdnf.cn/news/8014.html

相关文章:

  • 抛弃传统P2P技术,EasyRTC音视频基于WebRTC打造教育/会议/远程巡检等场景实时通信解决方案
  • 数据库blog5_数据库软件架构介绍(以Mysql为例)
  • 大队项目流程
  • 流程引擎选型指南
  • VSCode推出开源Github Copilot:AI编程新纪元
  • 实战:Dify智能体+Java=自动化运营工具!
  • C++ 中的 **常变量** 与 **宏变量** 比较
  • 【TI MSP430与SD NAND:心电监测的长续航解决方案】
  • Mysql刷题之正则表达式专题
  • 程序编辑器快捷键总结
  • Spring Boot与Disruptor高性能队列整合指南
  • SpringAI 大模型应用开发篇-SpringAI 项目的新手入门知识
  • Vue3实现轮播表(表格滚动)
  • App Builder技术选型指南:从AI编程到小程序容器,外卖App开发实战
  • STM32 CAN CANAerospace
  • 我爱学算法之—— 二分查找(中)
  • MySQL迁移SSL报错
  • web实验(2)
  • Redis 基础知识详解
  • 【笔记】修复AttributeError: ‘super‘ object has no attribute ‘__del__‘
  • 解决Qt Creator在Ubuntu环境下运行Qt程序后,程序中无法输入中文
  • MySQL的可重复读事务隔离级别的实现原理
  • leetcode 438. 找到字符串中所有字母异位词
  • Linux `nc` 命令详细讲解
  • vue3:十四、角色权限管理-表格引入-树形表格
  • Axure系统原型设计列表版方案
  • BERT框架:自然语言处理的革命性突破
  • PostgreSQL 14 pacemaker 高可用集群
  • czml数据以及应用
  • uniapp打包报错:重新在manifest.json中生成自己的APPID