关于数据库:PostgreSQL的流复制搭建

4次阅读

共计 1257 个字符,预计需要花费 4 分钟才能阅读完成。

单机版流复制测试环境搭建
搭建布局:


创立流复制用户:

create role replica with replication login password '123456';

备份主库:

pg_basebackup -D /backup/ -Ft -Pv -U postgres -h 1.15.57.253 -p5432 -R

解压备份:

cd /backup

tar -xvf base.tar -C /pgdata/12/data
tar -xvf pg-wal.tar -C /pgdata/12/arch

批改 postgresql.conf:

参数批改

max_wal_senders = 10                   #设置能够最多有几个流复制连贯,差不多有几个从,就设置几个,相当月 mysql 的 binlog dump 线程



wal_keep_segments = 0                  #设置流复制保留的最多的 xlog 数目  128



wal_sender_timeout = 60s               #设置流复制主机发送数据包的超时工夫



max_connections = 100                  #个别查多于写的利用从库的最大连接数比拟大



hot_standby = on                       #针对从库,阐明这台机器不仅仅是用于数据归档,也用于数据查问



max_standby_streaming_delay = 30s      #数据备份的最大延迟时间

                                                  

wal_receiver_status_interval = 10s     #多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的工夫距离



hot_standby_feedback = on              #如果有谬误的数据复制,是否向主进行反馈



recovery_target_timeline = 'latest'    #指定复原到一个最近的工夫线

另外因为是单机多实例,还须要批改这几个参数:

archive_command = 'cp %p /pgdata/1202/arch/%f'

port = 5433

批改 standby.signal:

standby_mode = 'on'

示意为备库。

启动备库:

pg_ctl -D /pgdata/1202/data
CST [22362] LOG:  started streaming WAL from primary at 0/6000000 on timeline 2

监控复制:

主库:

select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;

备库:

psql -U postgres -h localhost -p 5433 -c "\x" -c "select * from pg_stat_wal_receiver;"


测试:

主库上新建一个库:

查看备库:

墨天轮原文链接:https://www.modb.pro/db/19777…(复制链接至浏览器或点击文末浏览原文查看)
对于作者
陈家睿,云和恩墨 MySQL 技术顾问, 领有 MySQL OCP、PGCE、OBCA、SCDP 证书,长期服务于电信行业。现负责公司 MySQL 数据库、分布式数据库运维方面的技术工作;热衷于运维故障解决、备份复原、降级迁徙、性能优化的学习与分享。

正文完
 0