ITPub博客

首页 > 数据库 > 国内数据库 > 金仓集群无备份盘备-主轮询小版本升级实施步骤

金仓集群无备份盘备-主轮询小版本升级实施步骤

原创 国内数据库 作者:董小姐yyds 时间:2026-06-25 10:03:16 0 删除 编辑

01

—

董小姐 | 实战派DBA · 国产数据库先行者

  • 🏆 认证矩阵:Oracle 11g OCM / KCM / OBCP 4.0 / PGCE / 

  • 🏅 行业荣誉:墨天轮技术专家 & 2024年度优秀作者 | ITpub技术专家 | IFClub智库星系成员| 金仓KVA

  • 📝 写作成绩:2024金仓征文大赛🥇一等奖 | 2025金仓征文大赛🥉三等奖

  • ⚙️ 技术栈:Oracle、MySQL、PG 及 金仓/达梦/openGauss 等国产库的 部署、故障诊断与性能调优

拒绝纸上谈兵,用实战说话。关注我 ,获取一线实战经验。

文档目的与适用范围

  • 数据量约9T、不支持滚动升级 的约束下,安全完成金仓数据库(KingbaseES)集群的小版本升级。
  • 无法申请独立备份盘/空间 ,升级前无法执行全量物理冷备。
  • 确保升级过程 可监控、可验证、可回退 ,停机窗口内风险可控。
  • 方案适用于KingbaseES读写分离集群/Clusterware架构,依赖物理流复制实现主备数据同步。

升级核心原理与技术可行性

金仓数据库(KingbaseES)的流复制机制为本方案提供技术基础:

  • 物理流复制与版本无关 :KingbaseES采用基于WAL(Write-Ahead Logging)的物理日志流复制技术,主库事务提交后生成WAL日志,通过网络实时传输至备库,备库接收并回放 。复制的是物理层面的日志信息而非逻辑SQL语句, 不检查数据库版本号 ,主备节点版本可以存在差异 。
  • 数据一致性保障 :物理日志精确反映底层数据页变化,完整保留事务边界,避免因SQL重解析导致的数据歧义 。备库可正常接收来自旧版本主库的WAL日志并回放。
  • 复制槽机制 :KingbaseES支持通过 pg_create_physical_replication_slot 创建物理复制槽,确保备库所需的WAL日志不被提前清理 。

因此,可先升级备节点软件,再通过主备切换,最后升级原主节点,实现 停机窗口内的无损升级 。

准备工作

集群信息收集

核实应用侧JDBC自动寻主配置

确认应用侧配置有JDBC连接串自动寻主参数

ip、port、database更换为实际地址

base.url=jdbc:kingbase8://172.22.232.137:25432,172.22.232.92:25432,172.22.232.91:25432/database?targetServerType=master&stringtype=unspecified

KFS链路是否存在

如果KES是KFS链路的源端, 存在逻辑复制槽的情况下源端数据库停不掉,需要先停止KFS链路再启停节点。验证后发现不停止KFS服务停库也不影响。

select * from sys_replication_slots;

同步是否有延迟

确认备节点复制延迟为0,延迟应小于1MB。

如果有延迟先解决延迟

select usesysid, usename, sys_wal_lsn_diff(sys_current_wal_flush_lsn(), replay_lsn) as lsn_lag from sys_stat_replication;

所有节点执行检查点

checkpoint;

实现过程

不要按照 AI 给的办法 直接sys_ctl stop -D 数据目录停止数据库服务、重启主机,会出现重启主机前数据库服务就已经被自动拉起的情况。

所有节点执行checkpoint

--所有节点执行checkpointcheckpoint;

查看集群状态

--运行正常的节点repmgr cluster showrepmgr service status

暂停同步

要扩容的备节点操作,确保节点状态正常

repmgr service pause  后集群才不会切换 repmgr service status   Paused?值为yes

关闭要升级的备节点

sys_monitor.sh stoplocal  repmgr cluster showrepmgr service statussu - rootsystemctl stop securecmddsystemctl status securecmdd

备份备节点安装目录

备节点备份bin、lib、share、include目录,建议备份数据的目录与原data目录处于不同目录中。

申请不到备份盘,无法备份数据

--新建存储备份的目录mkdir -p /home/kingbase/data_bak20251208--备份安装目录下bin、lib、share、includecd /kdb/kingbase/cluster/kingbase_v8r2c10/install/kingbasecp -r bin lib share include /home/kingbase/data_bak20251208/或cp -r bin bin_bak_$(date +%Y%m%d)cp -r lib lib_bak_$(date +%Y%m%d)cp -r share share_bak_$(date +%Y%m%d)cp -r include include_bak_$(date +%Y%m%d)

替换新版本安装包

替换主节点和所有备节点版本包(假定压缩包为server.tar),将解压后的文件直接覆盖原数据库安装目录。

# 在安装目录下,解压缩覆盖原程序的lib、bin、share、include目录

cd /kdb/kingbase/cluster/kingbase_v8r2c10/install/kingbasetar -xf /home/kingbase/kingbase-server-V008R020C010PS019-linux-x86_64.tar -C ./

拷贝备份的license.dat到bin目录下

cp /home/kingbase/data_bak20251208/bin/license.dat /kdb/kingbase/cluster/kingbase_v8r2c10/install/kingbase/bin

启动备节点

securecmdd服务必须先启动,不然启动备节点失败

su - rootsystemctl start securecmddsystemctl status securecmddsu - kingbasesys_monitor.sh startlocalrepmgr cluster show repmgr service status

取消暂停同步

repmgr service unpause   Paused?值为no

查看集群状态

--运行正常的节点repmgr cluster showrepmgr service status

备库验证

检查复制状态

备节点状态为 streaming ,延迟<1MB。

select usesysid, usename, sys_wal_lsn_diff(sys_current_wal_flush_lsn(), replay_lsn) as lsn_lag from sys_stat_replication;

查版本

ksql -Vkingbase -Vksql test system -c "select version();"ksql test system -c "select build_version;"

主节点升级

备节点验证通过后,执行以上步骤进行主节点升级。

总结

强烈建议 :尽管当前无法申请备份盘,但在条件允许的情况下,仍应争取在升级窗口前完成以下操作:

  1. 利用停机窗口外的低峰时段 ,使用 rsync 将9T数据增量同步至临时存储(如NAS、对象存储),作为应急兜底。
  2. 逻辑备份核心表结构 ( sys_dump -s ),占用空间小,可部分缓解系统表损坏风险。

如后续可申请到备份空间,优先执行 物理冷备 :

  1. bash rsync -av --delete /kdb/data/ /backup/data_$(date +%Y%m%d)/

建议 :在方案评审时,向管理层明确“无备份盘”的风险等级,争取最低限度备份资源(如1-2T空间用于关键系统表和控制文件备份),或书面确认风险接受。

补充

repmgr service pause/unpause

适用于停止集群 自动故障切换和自动故障恢复 的场景。如用户不希望集群因维护操作而发生自动主备切换,可以先将集群功能置于 pause 状态,待维护操作完成后,最后再将集群功能置于unpause状态。

我的技术分享与交流阵地:

  • 📱 公众号/视频号:董小姐yyds / DongxiaojieYYDS

  • 💬 微信技术交流群:数据库实操(添加个人微信申请加入)

  • ✍️ 墨天轮:https://www.modb.pro/u/3121

  • 📝 CSDN:https://blog.csdn.net/qq961573863?type=blog

  • 💻 ITPUB:https://blog.itpub.net/myarticle/

  • 🧠 知乎:https://www.zhihu.com/people/fuwaxiaohuan

  • 💌 个人微信:margaretdy(添加请备注“数据库实操”)

02

—


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69963491/viewspace-3174375/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有Oracle 11g OCM,KCA,KCP,DCA,PGCA,PGCE等证书,墨天轮技术专家,墨天轮2024年度优秀作者,青学会成员。擅长主流Oracle、MySQL、PG安装部署、故障定位处理、性能优化,金仓、达梦、openGauss系等各种商用和开源国产数据库。

注册时间:2020-02-22

  • 博文量
    33
  • 访问量
    43737