
董小姐 | 实战派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采用基于WALWrite-Ahead Logging的物理日志流复制技术主库事务提交后生成WAL日志通过网络实时传输至备库备库接收并回放。复制的是物理层面的日志信息而非逻辑SQL语句不检查数据库版本号主备节点版本可以存在差异。数据一致性保障物理日志精确反映底层数据页变化完整保留事务边界避免因SQL重解析导致的数据歧义。备库可正常接收来自旧版本主库的WAL日志并回放。复制槽机制KingbaseES支持通过pg_create_physical_replication_slot创建物理复制槽确保备库所需的WAL日志不被提前清理。因此可先升级备节点软件再通过主备切换最后升级原主节点实现停机窗口内的无损升级。准备工作集群信息收集核实应用侧JDBC自动寻主配置确认应用侧配置有JDBC连接串自动寻主参数ip、port、database更换为实际地址base.urljdbc:kingbase8://172.22.232.137:25432,172.22.232.92:25432,172.22.232.91:25432/database?targetServerTypemasterstringtypeunspecifiedKFS链路是否存在如果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;主节点升级备节点验证通过后执行以上步骤进行主节点升级。总结强烈建议尽管当前无法申请备份盘但在条件允许的情况下仍应争取在升级窗口前完成以下操作利用停机窗口外的低峰时段使用rsync将9T数据增量同步至临时存储如NAS、对象存储作为应急兜底。逻辑备份核心表结构sys_dump -s占用空间小可部分缓解系统表损坏风险。如后续可申请到备份空间优先执行物理冷备bashrsync -av --delete /kdb/data/ /backup/data_$(date %Y%m%d)/建议在方案评审时向管理层明确“无备份盘”的风险等级争取最低限度备份资源如1-2T空间用于关键系统表和控制文件备份或书面确认风险接受。补充repmgr service pause/unpause适用于停止集群自动故障切换和自动故障恢复的场景。如用户不希望集群因维护操作而发生自动主备切换可以先将集群功能置于 pause 状态待维护操作完成后最后再将集群功能置于unpause状态。