匿名用户postgreSQL 主从角色切换的时候,是否还需要再来一遍pg_basebackup?
不需要,详细的步骤可以参考以下例子
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
墨值悬赏


