暂无图片
postgreSQL 主从角色切换的时候,是否还需要再来一遍pg_basebackup?
我来答
分享
暂无图片 匿名用户
postgreSQL 主从角色切换的时候,是否还需要再来一遍pg_basebackup?

postgreSQL 主从角色切换的时候,是否还需要再来一遍pg_basebackup?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
李宏达

不需要

暂无图片 评论
暂无图片 有用 0
暂无图片
农夫三拳

不需要,详细的步骤可以参考以下例子


1. 在master机器上执行
pg_controldata /data/pg_data/data/ |grep -i ‘database cluster state’
Database cluster state: in production

2. 在slave机器上执行
pg_controldata /data/pg_data/data/ |grep -i ‘database cluster state’
Database cluster state: in archive recovery

3.将只读节点提升为主节点
sudo -u postgres ./pg_ctl promote -D /data/pg_data/data/
waiting for server to promote… done
server promoted

select * from pg_stat_replication;

recovery.conf文件将会被改成recovery.done
将丢失主从状态,变成两个独立的单点
4.在slave机器上执行,发现从库已经被提升为主库
pg_controldata /data/pg_data/data/ |grep -i ‘database cluster state’
Database cluster state: in production

5.将原来master转变成从节点
1)创建recovery.conf配置文件
standby_mode = ‘on’
primary_conninfo = ‘user=postgres password=123456 host=172.16.0.103 port=5432 sslmode=disable sslcompression=0 target_session_attrs=any’
recovery_target_timeline=‘latest’

2)授权
chown postgres. recovery.conf

3)检查原主库的时间线是否超前
##target server must be shut down cleanly
sudo -u postgres /usr/local/pgsql/bin/pg_rewind --target-pgdata=/data/pg_data/data --source-server=‘host=172.16.0.103 port=5432 user=postgres password=123456’
source and target cluster are on the same timeline
no rewind required

4)启动从库服务
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /data/pg_data/data -l /data/pg_data/log/pg.log start

暂无图片 评论
暂无图片 有用 1
严少安
2022-11-16
👍‍

不需要

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏