PG主从流复制WAL被覆盖解决方式

本文详细介绍了如何通过调整wal_keep_segments、配置archive_mode和archive_command,以及使用NFS等方法来解决PostgreSQL流复制过程中主从数据库不一致的问题。包括增加wal的日志保留时间和优化复制过程的步骤。

PostgreSQL的流复制的原理是通过传递主机(master)上的wal日志信息到备机(slave)然后恢复,这中间就有一个潜在的问题,如果主机端比较忙,wal日志被覆盖了,而从机可能因为网络或者其他原因没有接收到该日志,就会造成主从不一致

requested WAL segment 0000000100000001000000A has already been removed

方式1:

借用老外的办法,国内的基本都是照抄:
archive_mode enables WAL archiving which can be used to recover files older than wal_keep_segments provides. The slave servers simply need a method to retrieve the WAL segments. NFS is the simplest method, but anything from scp to http to tapes will work so long as it can be scripted.

on master

archive_mode = on
archive_command = ‘cp %p /path_to/archive/%f’

on slave

restore_command = ‘cp /path_to/archive/%f “%p”’

When the slave can’t pull the WAL segment directly from the master, it will attempt to use the restore_command to load it. You can configure the slave to automatically remove segments using the archive_cleanup_commandsetting

方式2

增加wal_keep_segments = 5000(可以是任意大数)
增加segment的大小
重新配置流复制。教程网上到处都有

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值