首页 > 数据库 > 国内数据库 > 金仓集群不停机小版本升级
01
—
董小姐 | 实战派DBA · 国产数据库先行者
🏆 认证矩阵:Oracle 11g OCM / KCM / OBCP 4.0 / PGCE /
🏅 行业荣誉:墨天轮技术专家 & 2024年度优秀作者 | ITpub技术专家 | IFClub智库星系成员| 金仓KVA
📝 写作成绩:2024金仓征文大赛🥇一等奖 | 2025金仓征文大赛🥉三等奖
⚙️ 技术栈:Oracle、MySQL、PG 及 金仓/达梦/openGauss 等国产库的 部署、故障诊断与性能调优
拒绝纸上谈兵,用实战说话。关注我 ,获取一线实战经验。
V008R030C011PSI024升级到V008R030C011PSI026,该版本不支持滚动升级,但是业务又不能停。和大佬们沟通得知集群直接通过物理复制槽同步数据和版本没关系,那就意味着主备节点可以版本不一致,但是未找到实践案例,经验证后可行。
确认应用侧配置有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
如果KES是KFS链路的源端, 存在逻辑复制槽的情况下源端数据库停不掉 ,需要先停止KFS链路再启停节点。
select * from sys_replication_slot;
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
checkpoint;
--运行正常的节点
repmgr cluster show
repmgr service status
要扩容的备节点操作,确保节点状态正常
repmgr service pause 后集群才不会切换
repmgr service status Paused?值为yes
sys_monitor.sh stoplocal
repmgr cluster show
repmgr service status
su - root
systemctl stop securecmdd
systemctl status securecmdd
备节点备份bin、lib、share、include目录,建议备份数据的目录与原data目录处于不同目录中。
--新建存储备份的目录
mkdir -p /home/kingbase/data_bak20251208
--备份安装目录下bin、lib、share、include
cd /kdb/kingbase/cluster/kingbase_v8r2c10/install/kingbase
cp -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/kingbase
tar -xf /home/kingbase/kingbase-server-V008R020C010PS019-linux-x86_64.tar -C ./
cp /home/kingbase/data_bak20251208/bin/license.dat /kdb/kingbase/cluster/kingbase_v8r2c10/install/kingbase/bin
securecmdd服务必须先启动,不然启动备节点失败
su - root
systemctl start securecmdd
systemctl status securecmdd
su - kingbase
sys_monitor.sh startlocal
repmgr cluster show
repmgr service status
repmgr service unpause Paused?值为no
--运行正常的节点
repmgr cluster show
repmgr service status
主备切换 要升主的备节点操作
一主两备:${install_dir}/bin/repmgr standby switchover --force-rewind --siblings-follow
补充:一主一备:${install_dir}/bin/repmgr standby switchover --force-rewind
重复执行以上操作步骤在原主节点操作即可完成滚动升级
恢复旧主为primary角色,再次主备切换 要升主的备节点操作 该步骤可选 如果不存在运维考虑可以不切回
一主两备:${install_dir}/bin/repmgr standby switchover --force-rewind --siblings-follow
补充:一主一备:${install_dir}/bin/repmgr standby switchover --force-rewind
ksql -V
kingbase -V
ksql test system -c "select version();"
ksql test system -c "select build_version;"
适用于停止集群 自动故障切换和自动故障恢复 的场景。如用户不希望集群因维护操作而发生自动主备切换,可以先将集群功能置于 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-3174209/ ,如需转载,请注明出处,否则将追究法律责任。