在没有 WAL 归档的情况下,PostgreSQL 9.1 流式复制是否能赶上?

Zac*_*c B 17 postgresql replication

语境:

假设在 Postgres 9.1 集群上使用流式复制/热备时,备用节点出现故障。它会停留一天,在此期间主服务器上会发生大量 DML。备用数据库的 recovery.conf 不包含“restore_command”条目(用于从 WAL 日志文件恢复),但包含“primary_conninfo”字符串(用于流式复制)。

题:

如果我在主服务器上更改一天后再次启动备用服务器。它是否会仅使用流式复制“赶上”(最终进入反映主服务器的状态)?或者我是否必须启用 WAL 文件归档并让它应用在中断期间归档的文件以确保货币?

我检查了WAL归档/流复制文档在这里,它说,你不必同时启用WAL归档和流复制,但目前还不清楚追赶是否会发生没有WAL文件归档被启用。

谢谢!

小智 10

是的,它会赶上,仅使用流式传输,如果(且仅当)自备用数据库上次更新以来生成的 WAL 段数小于 postgresql.conf 中 wal_keep_segments 的值。文档的这一部分涵盖了这一点:复制

  • 这个答案是正确的,但它突出了问题。如果你确实通过了 wal_keep_segments,你的复制就死了。如果您希望系统能够在与主服务器长时间断开连接并恢复正常运行时,设置基于文件的复制不是可选的。 (2认同)