小编rsm*_*thy的帖子

无法从 WAL 流接收数据:错误:请求的 WAL 段已被删除

配置:Postgres 9.6,具有 3 个集群节点。db1 是主服务器,db2 和 db3 是副本服务器。WAL 文件使用自定义工具存档在 AWS S3 中pgrsync。集群由守护神管理。并在所有节点上正确配置archive_commandrestore_command

模拟:在 db1 上,执行大量写入(例如真空大表),然后通过 停止 db1 sudo systemctl stop patroni。db3 成为新的领导者。db2 请求更多 WAL 文件,这些文件是通过 AWS S3 的正确恢复命令获取的,成为 db3 的副本。

现在,通过( sudo systemctl start patroni)再次启动db1。但是 db1(旧的领导者和新的副本)永远不会作为副本出现并给出错误消息:

无法从 WAL 流接收数据:错误:请求的 WAL 段 0000002400053C55000000AE 已被删除。

此错误消息由 db3(领导者)报告,而 db1 仅记录该消息。

那么,让我们看看时间表。最初 db1 位于时间线 35 (0x23) 并写入以下文件进行存档:

0000002300053C55000000AE   (TL is 23 and archive at 53C55/AE)
..
0000002300053C5600000043   (TL is 23 and archive at 53C56/43)
Run Code Online (Sandbox Code Playgroud)

db1 此时已停止。db3 的日志显示: …

postgresql postgresql-9.6 patroni

7
推荐指数
1
解决办法
1万
查看次数

postgresql:在某些备用服务器上重放流式 WAL 文件很慢

环境:Postgresql 9.6.21。由patoni管理的多台备用服务器

+ Cluster: db11     (12345678901234567) ------+---------+-----+-----------+
| Member        | Host         | Role         | State   |  TL | Lag in MB |
+---------------+--------------+--------------+---------+-----+-----------+
| db11-01       | db11-01      | Leader       | running | 113 |           |
| db11-02       | db11-02      | Sync Standby | running | 113 |         0 |
| db11-03       | db11-03      | Sync Standby | running | 113 |         0 |
| db11-04       | db11-04      | Sync Standby | running | 113 |         8 |
+---------------+--------------+--------------+---------+-----+-----------+
Run Code Online (Sandbox Code Playgroud)

一些 pg_settings …

postgresql replication

5
推荐指数
1
解决办法
72
查看次数

标签 统计

postgresql ×2

patroni ×1

postgresql-9.6 ×1

replication ×1