postgresql异步流复制

postgresql异步流复制
主:192.168.6.22
备:192.168.6.23

主库配置:
1.配置/etc/postgresql/10/main/postgresql.conf
vim postgresql.conf
exc :/wal_level 查找 替换

wal_level = hot_standby  # minimal, replica, or logical   使得日志支持Streaming Replication
max_wal_senders = 2  # max number of walsender processes   这个设置了可以最多有几个流复制连接,几个并发的standby数据库就设置几个
wal_keep_segments = 5000     设置流复制保留的最多的xlog数目,不要设置太小导致WAL日志还没有来得及传送到standby就被覆盖。一个WAL文件默认16M 256
hot_standby = on  # "on" allows queries during recovery  设置为备库时是否支持可读
logging_collector = on
# log_directory = 'pg_log' # pgdata下log
# log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

2. 创建流复制数据库用户
sudo -i -u postgres
psql -p 5432 postgres
create user repl SUPERUSER LOGIN password '123456';

3.配置/etc/postgresql/10/main/pg_hba.conf
# 注意:连接问题,都是该文件配置不对
# ifconfig netmask 255.255.255.0  24  255.255.0.0 32 注意ip/后的32和24 一定要正确
# 文件中有的话修改(或者把以前注释掉,否则的话以前面的配置为准) 没有的话添加 
host    all             all             127.0.0.1/32            trust
# host    all             all             0.0.0.0/0               md5
host    all             all             ::1/128                trust
# repl是复制的用户 10.36.34.0是备机ip 最后改为0表示192.168.8.的所有网段
host    replication      repl        192.168.6.0/24       trust 

其中:
1) repl为在主库上创建的用于备库连接主库进行流复制的用户,此用户需要用户需要有REPLICATION权限和LOGIN权限。开户如:
create user repl SUPERUSER LOGIN password '123456';
2) 10.10.10.0/32为备库地址段+掩码;也可配置为具体的standby数据库地址+掩码,可配置多条。
用于指定哪些地址的standby数据用哪个用户名/密码到主库获取WAL日志数据。使用地址段格式,
则地址段内的IP都可以无密码对此数据库进行访问,安全性可能会降低。因此,在生产环境中建议严格按照具体主机IP方式配置。

4.重启数据库
/etc/init.d/postgresql restart


进行主库->备库基础备份:

在备库:
# -R 表示会在备份结束后自动生成recovery.conf文件,这样就避免了手动创建。
# pg_basebackup --help 详细查看参数
pg_basebackup -h 192.168.6.22 -U repl -F p -P -X s -R -D 10/main/ -l replbackup20200722
# 重启
/etc/init.d/postgresql restart


备库配置:
1. /etc/postgresql/10/main/postgresql.conf
hot_standby = on

2. 自动生成/var/lib/postgresql/10/main/recovery.conf,不需要再配置

3.重启数据库
/etc/init.d/postgresql restart


结果检查
ps -ef | grep wal

主库:
postgres 21904 21899  0 13:16 ?        00:00:00 postgres: 10/main: wal writer process
postgres 25906 21899  0 13:30 ?        00:00:00 postgres: 10/main: wal sender process repl 192.168.6.23(35568) streaming 31/9A000140

备库:
# postgres 31691 31587  0 13:30 ?        00:00:00 postgres: 10/main: wal receiver process
postgres  3537 25479  0 13:32 pts/3    00:00:00 grep wal
postgres 31691 31587  0 13:30 ?        00:00:00 postgres: 10/main: wal receiver process   streaming 31/9A190598

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值