文档用途
有的时候需要修改服务器IP地址,IP改变会影响DBHA集群运行。DBHA集群也需要修改相应的IP配置。本文主要描述此场景下DBHA集群修改IP步骤。
详细信息
要求:
1.首先确保集群状态是正常的,再执行以下操作。否则需要先解决集群异常问题。
2.对所有修改的文件,提前进行备份。以备回退操作。
3.确保数据库备份正常,保证数据安全。
4.停止业务
集群修改ip步骤
1.停止集群所有组件
dbha stop -a如提前修改了服务器ip地址,此时无法和monitor通信。需要手动停止所有组件服务,在所有节点执行# 杀掉monitorps -ef |grep db_ha |grep monikill -9 $pid# 停止agentsystemctl 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 $PGDATAhost=x.x.10.241sed -n '/^primary_conninfo/ p' postgresql.auto.confsed -r -i "/^primary_conninfo/ s/^/#/g" postgresql.auto.confsed -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.yamlarbitration_ip=x.x.10.1primary=x.x.10.241standby=x.x.10.242sed -r -i "s/arbitration_ip:.[0-9.]*/arbitration_ip: $arbitration_ip/1m" primary_monitor.yamlsed -r -i "/node_type: primary/ {n;s/node_ip:.[0-9.]*/node_ip: $primary/}" primary_monitor.yamlsed -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.242sed -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.242secondary_monitor_ip=x.x.10.241sed -r -i "/^primary_monitor_ip/ s/primary_monitor_ip:.[0-9.]*/primary_monitor_ip: $primary_monitor_ip/" db_ha.yamlsed -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;# 启动各节点agentsystemctl 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 selectdb_ha showvip -a
版权声明:本文由瀚高及PG志愿者翻整理,转载请注明出处,本页面内容均源自PostgreSQL Weekly英文官网,翻译目的在于传递更多信息,并不意味着瀚高赞同其观点或证实其内容的真实性。如果其他媒体、网站或其他任何形式的法律实体和个人使用,必须经过著作权人合法书面授权并自负全部法律责任。不得擅自使用瀚高名义进行转载,或盗用瀚高名义发布信息。否则瀚高将保留追究法律责任的权利!
文章转载自瀚高PG实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





