千家信息网

如何实现Postgresql流复制主备切换

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本篇内容主要讲解"如何实现Postgresql流复制主备切换",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现Postgresql流复制主备切换"吧!
千家信息网最后更新 2024年11月26日如何实现Postgresql流复制主备切换

本篇内容主要讲解"如何实现Postgresql流复制主备切换",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现Postgresql流复制主备切换"吧!

--操作系统命令,判断发送进程还是接收进程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.conftrigger_file='/pgdata/data/.postgresql.trigger.5432'--2、关闭主库pg_ctl stop -m fast--3、创建触发文件,重启备库,观察recovery.conf 是否变成recovery.donetouch /pgdata/data/.postgresql.trigger.5432--4、老主库 变成备库--编辑recovery.conf文件recovery_target_timeline='latest'standby_mode=onprimary_conninfo='host=192.168.8.25 port=5432 user=repuser'--密码文件cat .pgpass192.168.8.25:5432:replication:repuser:re12a345192.168.8.81:5432:replication:repuser:re12a345chmod 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,msrecovery_min_apply_delay=1min--同步流复制,延迟参数优先synchronous_commit=on recovery_min_apply_delay=1min #优先--remote_aplysynchronous_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 apg_basebackup -D /pgdata/data -Fp -Xs -v -P -h  192.168.28.74 -p 5432 -U repuser--2、配置c recovery.conf 文件,host brecovery_target_timeline='latest'standby_mode=onprimary_conninfo='host=192.168.8.25 port=5432 user=repuser application_name=c'--3、启动c

到此,相信大家对"如何实现Postgresql流复制主备切换"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0