PG主从流复制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的大小
重新配置流复制。教程网上到处都有

PostgreSQL 中的主从复制和归档是实现高可用性和数据备份的两种常见方式。以下是如何配置 PostgreSQL 主从复制和归档的简要说明: 1. 主从复制配置: 首先在主服务器上进行如下配置: - 修改 `postgresql.conf` 文件,启用 WAL 日志记录和复制,并指定要复制WAL 日志级别: ``` wal_level = replica max_wal_senders = 5 wal_keep_segments = 32 ``` - 修改 `pg_hba.conf` 文件,允许从服务器连接主服务器: ``` host replication replica 192.168.1.0/24 md5 ``` 然后在从服务器上进行如下配置: - 创建从服务器上用于复制主服务器上数据库的用户: ``` CREATE USER replica WITH REPLICATION LOGIN PASSWORD 'password'; ``` - 在 `recovery.conf` 文件中指定从服务器要连接的主服务器信息和要恢复的时间点: ``` standby_mode = on primary_conninfo = 'host=192.168.1.100 port=5432 user=replica password=password' recovery_target_timeline = 'latest' ``` 2. 归档配置: - 修改 `postgresql.conf` 文件,启用归档并指定归档目录: ``` archive_mode = on archive_command = 'cp %p /mnt/archive/%f' ``` 其中 `%p` 表示要归档的 WAL 日志路径,`%f` 表示要归档的文件名。 - 确认归档目录已经创建,并由 PostgreSQL 用户可以写入。 - 在从服务器上进行如下配置: ``` restore_command = 'cp /mnt/archive/%f %p' ``` 其中 `%p` 表示要恢复的 WAL 日志路径,`%f` 表示要恢复的文件名。 以上是 PostgreSQL 主从复制和归档的简要配置说明。需要注意的是,具体的配置可能会因为环境和需求的不同而有所不同,建议在实际应用中根据需要进行相应的调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值