主从流复制切换
思路
全备备机(基础备份),恢复到原主机
然后恢复复制
然后再切换到原来的主机
主库
cd /usr/lib/postgresql/9.3/
./pg_ctl -D /var/lib/postgresql/9.3/main/ -m fast stop
./pg_controldata /var/lib/postgresql/9.3/main/
Latest checkpoint location: 0/84000028
Prior checkpoint location: 0/83EF8CF0
Latest checkpoint's REDO location: 0/84000028
Latest checkpoint's REDO WAL file: 000000010000000000000084
从库
cd /usr/lib/postgresql/9.3/bin/
./pg_ctl -D /var/lib/postgresql/9.3/main/ -m fast stop
./pg_controldata /var/lib/postgresql/9.3/main
Latest checkpoint location: 0/84000028
Prior checkpoint location: 0/83EF8C50
Latest checkpoint's REDO location: 0/84000028
Latest checkpoint's REDO WAL file: 000000010000000000000084
切换
确保standby和primary 的pg_controldata checkpoint的输出结果一致。就可以切换standby 和 primary了。
启动standby,并且touch一个在recovery.conf中的trigger文件,使standby promote.为primary库
这步我是用新版的流复制搭建的 trigger 文件为空。
mv recovery.conf recovery.conf.bak
mkdir /var/lib/postgresql/9.3/wal.backup
chmod 777 /var/lib/postgresql/9.3/wal.backup
然后启动stanby服务器
./pg_ctl -D /var/lib/postgresql/9.3/main/ start
修改原primary库的配置文件 并新建recovery.conf,需要注意的是新增一条
recovery_target_timeline = 'latest'
启动原primary,此时切换完成,primary 变standby,standby 变primary
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。