重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 249|回复: 0
打印 上一主题 下一主题

DBHA集群修改IP

[复制链接]
跳转到指定楼层
楼主
发表于 2025-9-7 16:35:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有的时候需要修改服务器IP地址,IP改变会影响DBHA集群运行。DBHA集群也需要修改相应的IP配置。本文主要描述此场景下DBHA集群修改IP步骤。

详细信息

要求:

1.首先确保集群状态是正常的,再执行以下操作。否则需要先解决集群异常问题。

2.对所有修改的文件,提前进行备份。以备回退操作。

3.确保数据库备份正常,保证数据安全。

4.停止业务



集群修改ip步骤



1.停止集群所有组件

dbha stop -a



如提前修改了服务器ip地址,此时无法和monitor通信。需要手动停止所有组件服务,在所有节点执行



# 杀掉monitor

ps -ef |grep db_ha |grep moni

kill -9 $pid

# 停止agent

systemctl stop db_ha-agent.service

2. 停止所有节点的数据库

此步骤确认当前主备库角色,关闭时先备库后主库,启动时先主库后备库

psql -c 'checkpoint;'

pg_ctl stop



此时修改服务器IP地址。修改完成后,执行以下步骤



3. 修改配置文件

所有备库,手动修改参数primary_conninfo中host指定的ip地址,也可参考如下命令修改。

# 修改数据库配置文件$PGDATA/postgresql.auto.conf

# 所有备库,修改参数primary_conninfo中host指定的ip地址

cd $PGDATA

host=x.x.10.241

sed -n '/^primary_conninfo/ p' postgresql.auto.conf

sed -r -i "/^primary_conninfo/ s/^/#/g" postgresql.auto.conf

sed -r -i "\$a primary_conninfo = 'application_name=node2 user=sysdba host=$host port=5866'" postgresql.auto.conf

4. 修改主监控节点 primary_monitor.yaml配置文件中的 ip(arbitration_ip,node_ip)

手动修改参数arbitration_ip,node_ip中的ip地址。也可参考如下命令修改。

cd /usr/local/db_ha/conf/

#sed -n '/^arbitration_ip/ p' primary_monitor.yaml

#sed -n '/node_ip/ p' primary_monitor.yaml

#sed -n '/node_type: primary/ {n;p}' primary_monitor.yaml

arbitration_ip=x.x.10.1

primary=x.x.10.241

standby=x.x.10.242

sed -r -i "s/arbitration_ip:.[0-9.]*/arbitration_ip: $arbitration_ip/1m" primary_monitor.yaml

sed -r -i "/node_type: primary/ {n;s/node_ip:.[0-9.]*/node_ip: $primary/}" primary_monitor.yaml

sed -r -i "/node_type: standby/ {n;s/node_ip:.[0-9.]*/node_ip: $standby/}" primary_monitor.yaml

5. 修改备监控节点 secondary_monitor.yaml配置文件中的 ip(primary_monitor_ip)



手动修改参数primary_monitor_ip中的ip地址。也可参考如下命令修改。

primary_monitor_ip=x.x.10.242

sed -r -i "/^primary_monitor_ip/ s/primary_monitor_ip:.[0-9.]*/primary_monitor_ip: $primary_monitor_ip/" secondary_monitor.yaml

6. 修改所有节点的db_ha.yaml配置文件中的ip(primary_monitor_ip,secondary_monitor_ip)



手动修改参数primary_monitor_ip,secondary_monitor_ip中的ip地址。也可参考如下命令修改

primary_monitor_ip=x.x.10.242

secondary_monitor_ip=x.x.10.241

sed -r -i "/^primary_monitor_ip/ s/primary_monitor_ip:.[0-9.]*/primary_monitor_ip: $primary_monitor_ip/" db_ha.yaml

sed -r -i "/^secondary_monitor_ip/ s/secondary_monitor_ip:.[0-9.]*/secondary_monitor_ip: $secondary_monitor_ip/" db_ha.yaml

7. 启动数据库和集群组件

# 主库

pg_ctl start

# 备库

pg_ctl start

# 查看流复制

select * from pg_stat_replication;

# 启动各节点agent

systemctl start db_ha-agent.service

# 启动主监控monitor

/usr/local/db_ha/bin/primary_monitor

# 启动备监控monitor

/usr/local/db_ha/bin/secondary_monitor

8. 重新添加vip

-v指定的是vip地址

/usr/local/db_ha/bin/db_ha rmvip x.x.10.241 -v x.x.9.107

/usr/local/db_ha/bin/db_ha addvip x.x.10.241 -v x.x.10.240

9. 查询状态

db_ha select

db_ha showvip -a

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-18 03:02 , Processed in 0.227585 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表