如何实现Postgresql流复制主备切换-创新互联
本篇内容主要讲解“如何实现Postgresql流复制主备切换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现Postgresql流复制主备切换”吧!
丰台网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。--操作系统命令,判断发送进程还是接收进程 ps -ef | grep "wal" | grep -v "grep" --数据查看 select pid,usename,application_name,client_addr,state,sync_state from pg_stat_replication; --or 备库 select pid,status,last_msg_send_time,last_msg_receipt_time,conninfo from pg_stat_wal_receiver; --系统函数查看 select pg_is_in_recovery(); --数据库控制信息 pg_controldata | grep cluster --查看recovery.conf 配置文件 --主备切换 文件触发方式 9.0之前的版本 --1、 配置备库文件,添加trigger_file参数 recovery.conf trigger_file='/pgdata/data/.postgresql.trigger.5432' --2、关闭主库 pg_ctl stop -m fast --3、创建触发文件,重启备库,观察recovery.conf 是否变成recovery.done touch /pgdata/data/.postgresql.trigger.5432 --4、老主库 变成备库 --编辑recovery.conf文件 recovery_target_timeline='latest' standby_mode=on primary_conninfo='host=192.168.8.25 port=5432 user=repuser' --密码文件 cat .pgpass 192.168.8.25:5432:replication:repuser:re12a345 192.168.8.81:5432:replication:repuser:re12a345 chmod 0600 .pgpass --主备切换 pg_ctl promote 方式 --1、关闭主库 pg_ctl stop -m fash --2、备库执行 pg_ctl promote --3、老主库切换成备库 --pg_rewind 流复制维护数据同步工具 --当备库激活成主库时,如果没有关闭老的主库,这时老的主库不能切换成备库, 不需要重新备份,pg_rewind 复制变化(增量刷新同步) --前提条件,满足其一即可 1、postgresql.conf 配置文件中 wal_log_hints 参数设置成on,需重启数据库 2、数据库安装时initdb 初始化时使用了--data-checksums,发现io错误,开启性能有损耗 --node2 激活备库 --node1 关闭备库,使用pg_rewind 增量同步 pg_rewind --target-pgdata $PGDATA --source-server='host=192.168.8.25 posrt=5432 user=postgres dbname=postgres' -P --以上命令执行成功, postgres用户密码会写入~/.pgpass --修改recovery.conf 启动新备库 --延迟备库 recovery.conf 添加参数,目前支持s,min,h,d,ms recovery_min_apply_delay=1min --同步流复制,延迟参数优先 synchronous_commit=on recovery_min_apply_delay=1min #优先 --remote_aply synchronous_commit=remote_apply #主库操作被阻塞1分钟,备库应用完成才返回结果 recovery_min_apply_delay=1min #优先 --同步复制优选提交,一主两备,注意,当同步库中有宕机的,主库会阻塞 synchronous_standby_names=db1,db2 # 备库列表 第一个为同步备库,第二个潜在的同步备库 synchronous_standby_names='FIRST 2(db1,db2,db3)' # 前两个为同步备库,第三个为潜在同步备库 synchronous_standby_names='ANY 2(db1,db2,db3)' # 任意两个为同步备库,其他为潜在同步备库 --级联复制a>b>c --1、异步流复制,部署备库b,复制正常,开始部署备库c,c执行 -h a pg_basebackup -D /pgdata/data -Fp -Xs -v -P -h 192.168.28.74 -p 5432 -U repuser --2、配置c recovery.conf 文件,host b recovery_target_timeline='latest' standby_mode=on primary_conninfo='host=192.168.8.25 port=5432 user=repuser application_name=c' --3、启动c
到此,相信大家对“如何实现Postgresql流复制主备切换”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
标题名称:如何实现Postgresql流复制主备切换-创新互联
文章出自:http://pwwzsj.com/article/deehep.html