需求描述

2套3节点集群的CPU核数需要有4C扩容到8C,云环境上的服务器需要重启生效,未配置VIP,应用侧配置有JDBC自动寻主。

考虑到业务方要求无感知,维护脚本都在主节点服务器;采用备节点扩容--主从切换--旧主节点扩容--旧主再恢复的步骤。

和业务说清楚:切换过程中应用连接会瞬间断开,但驱动会自动重连,通常会在几秒内恢复。

准备工作

集群信息收集

核实应用侧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链路再启停节点。

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 service status
repmgr service pause  后集群才不会切换  Paused?值为yes
sys_monitor.sh stoplocal

服务器组关闭主机、cpu扩容、启动主机

sys_monitor.sh startlocal
repmgr service unpause   Paused?值为no
repmgr service status

--主备切换  要升主的备节点操作
一主两备:${install_dir}/bin/repmgr standby switchover --force-rewind --siblings-follow

补充:一主一备:${install_dir}/bin/repmgr standby switchover --force-rewind

--重复执行以上备节点操作步骤
repmgr service status
repmgr service pause  后集群才不会切换   Paused?值为yes
sys_monitor.sh stoplocal

服务器组关闭主机、cpu扩容、启动主机

sys_monitor.sh startlocal
repmgr service unpause  Paused?值为no
repmgr service status

--恢复旧主为primary角色,再次主备切换  要升主的备节点操作  该步骤可选 如果不存在运维考虑可以不切回
一主两备:${install_dir}/bin/repmgr standby switchover --force-rewind --siblings-follow

补充:一主一备:${install_dir}/bin/repmgr standby switchover --force-rewind

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐