一、概述
以一主两备 三节点集群为例,完整操作流程如下:
二、停止集群
首先通过以下命令查看集群节点信息及运行状态:
gs_om -t status --detail # 查看节点信息以及状态
⚠️ 更换 IP 地址操作需要在整个集群停止运行的前提下进行。执行以下命令停止集群:
cm_ctl stop # 停掉集群运行
三、修改节点 IP
本次示例的 IP 更换映射关系如下表所示:
节点名称 | 原 IP 地址 | 新 IP 地址 |
panweidb241 | 192.168.56.241 | 192.168.56.251 |
panweidb242 | 192.168.56.242 | 192.168.56.252 |
panweidb243 | 192.168.56.243 | 192.168.56.253 |
VIP | 192.168.56.100 | 192.168.56.200 |
分别在每台机器上执行以下命令来更新网卡配置(以 enp0s8 网卡为例):
节点 1(panweidb241)执行:
sed -i 's/192.168.56.241/192.168.56.251/g' /etc/sysconfig/network-scripts/ifcfg-enp0s8
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-enp0s8
systemctl restart network
# 或使用 NetworkManager 方式(bclinux21)
systemctl restart NetworkManager
nmcli connection down enp0s8 && nmcli connection up enp0s8
节点 2(panweidb242)执行:
sed -i 's/192.168.56.242/192.168.56.252/g' /etc/sysconfig/network-scripts/ifcfg-enp0s8
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-enp0s8
systemctl restart network
# 或使用 NetworkManager 方式(bclinux21)
systemctl restart NetworkManager
nmcli connection down enp0s8 && nmcli connection up enp0s8
节点 3(panweidb243)执行:
sed -i 's/192.168.56.243/192.168.56.253/g' /etc/sysconfig/network-scripts/ifcfg-enp0s8
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-enp0s8
systemctl restart network
# 或使用 NetworkManager 方式(bclinux21)
systemctl restart NetworkManager
nmcli connection down enp0s8 && nmcli connection up enp0s8
✅ 三台节点全部执行完毕后,使用新 IP 地址重新连接各节点。
四、修改集群配置文件
三台节点均需执行以下配置更新操作:
4.1 修改 /etc/hosts 文件
# 替换 /etc/hosts 中的旧 IP 为新 IP
sed -i 's/192.168.56.241/192.168.56.251/g' /etc/hosts
sed -i 's/192.168.56.242/192.168.56.252/g' /etc/hosts
sed -i 's/192.168.56.243/192.168.56.253/g' /etc/hosts
4.2 更新 SSH 互信配置
# 替换 omm 用户 known_hosts 中的 IP
sed -i 's/192.168.56.241/192.168.56.251/g' /home/omm/.ssh/known_hosts
sed -i 's/192.168.56.242/192.168.56.252/g' /home/omm/.ssh/known_hosts
sed -i 's/192.168.56.243/192.168.56.253/g' /home/omm/.ssh/known_hosts
# 替换 root 用户 known_hosts 中的 IP
sed -i 's/192.168.56.241/192.168.56.251/g' /root/.ssh/known_hosts
sed -i 's/192.168.56.242/192.168.56.252/g' /root/.ssh/known_hosts
sed -i 's/192.168.56.243/192.168.56.253/g' /root/.ssh/known_hosts
cat /home/omm/.ssh/known_hosts # 验证 IP 已正确替换
验证互信:使用 ssh 命令连接至任意一个节点确认互信正常。
4.3 修改数据库流复制参数(postgresql.conf)
sed -i 's/192.168.56.241/192.168.56.251/' /database/panweidb/data/postgresql.conf
sed -i 's/192.168.56.242/192.168.56.252/' /database/panweidb/data/postgresql.conf
sed -i 's/192.168.56.243/192.168.56.253/' /database/panweidb/data/postgresql.conf
# 验证 replconninfo 参数已更新
cat /database/panweidb/data/postgresql.conf | egrep -w "(replconninfo1|replconninfo2)"
4.4 修改 pg_hba.conf 文件
sed -i 's/192.168.56.241/192.168.56.251/' /database/panweidb/data/pg_hba.conf
sed -i 's/192.168.56.242/192.168.56.252/' /database/panweidb/data/pg_hba.conf
sed -i 's/192.168.56.243/192.168.56.253/' /database/panweidb/data/pg_hba.conf
4.5 修改 cluster_config.xml 并重新分发
在第一个节点以 omm 用户执行(注意将路径替换为实际路径):
sed -i 's/192.168.56.241/192.168.56.251/' /database/panweidb/soft/cluster_config.xml
sed -i 's/192.168.56.242/192.168.56.252/' /database/panweidb/soft/cluster_config.xml
sed -i 's/192.168.56.243/192.168.56.253/' /database/panweidb/soft/cluster_config.xml
# 重新分发配置到所有节点
gs_om -t generateconf -X /database/panweidb/soft/cluster_config.xml --distribute
五、清空 CM 数据
在第一个节点以 omm 用户执行:
# 备份 dcf 目录下的 metadata 目录
gs_ssh -c "mv /database/panweidb/cm/dcf_data/metadata /database/panweidb/cm/dcf_data/metadata.bak"
# 删除动态配置
gs_ssh -c "rm -f $GAUSSHOME/bin/cluster_dynamic_config"
六、修改 VIP 配置
# 删除旧的 VIP 配置
gs_ssh -c " cm_ctl res --del --res_name=\"floatIp1\""
# 添加新的 VIP 配置(VIP 从 192.168.56.100 → 192.168.56.200)
gs_ssh -c "cm_ctl res --add --res_name=\"floatIp1\" --res_attr=\"resources_type=VIP,float_ip=192.168.56.200\""
# 关联节点 1(node_id=1, base_ip=192.168.56.251)
gs_ssh -c "cm_ctl res --edit --res_name=\"floatIp1\" --add_inst=\"node_id=1,res_instance_id=6001\" --inst_attr=\"base_ip=192.168.56.251\""
# 关联节点 2(node_id=2, base_ip=192.168.56.252)
gs_ssh -c "cm_ctl res --edit --res_name=\"floatIp1\" --add_inst=\"node_id=2,res_instance_id=6002\" --inst_attr=\"base_ip=192.168.56.252\""
# 关联节点 3(node_id=3, base_ip=192.168.56.253)
gs_ssh -c "cm_ctl res --edit --res_name=\"floatIp1\" --add_inst=\"node_id=3,res_instance_id=6003\" --inst_attr=\"base_ip=192.168.56.253\""
七、启动集群
7.1 杀掉 om_monitor 进程
ps -ef | grep om_monitor
# 执行 kill 命令终止 om_monitor 进程
等待 om_monitor 自动重启后,启动集群:
cm_ctl start




