暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PanWeiDB 数据库集群更换节点IP 操作手册

Jcccccccc 2026-06-30
46

一、概述

以一主两备  三节点集群为例,完整操作流程如下:



二、停止集群

首先通过以下命令查看集群节点信息及运行状态:

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论