var*_*447 3 postgresql master-slave
我已经在主服务器和辅助服务器之间设置了流复制。我已启用存档。在 Postgres 日志文件中,我看到以下错误。
< 2017-12-05 03:08:45.374 UTC > WARNING: archive_mode enabled, yet archive_command is not set
< 2017-12-05 03:08:46.668 UTC > ERROR: requested WAL segment 0000000100000000000000E3 has already been removed
< 2017-12-05 03:08:51.675 UTC > ERROR: requested WAL segment 0000000100000000000000E3 has already been removed
< 2017-12-05 03:08:56.682 UTC > ERROR: requested WAL segment 0000000100000000000000E3 has already been removed
Run Code Online (Sandbox Code Playgroud)
我们需要启用archive_mode = on流复制吗?如何避免上述错误?
max_wal_senders = 3
wal_keep_segements = 32
Run Code Online (Sandbox Code Playgroud)
https://www.postgresql.org/docs/current/static/warm-standby.html
如果您使用流式复制而不进行基于文件的连续归档,则服务器可能会在备用服务器收到旧的 WAL 段之前回收它们。如果发生这种情况,则需要从新的基础备份重新初始化备用数据库。您可以通过将 wal_keep_segments 设置为足够大的值来避免这种情况,以确保 WAL 段不会过早回收,或者为备用数据库配置复制槽。如果您设置了可从备用数据库访问的 WAL 存档,则不需要这些解决方案,因为备用数据库始终可以使用存档来赶上,只要它保留足够的段。
强调我的。
因此,要么增加到wal_keep_segments足够大(足以满足您的块更改量),要么配置archive_command并设置一些存储以保持从主设备中删除的wals可供从设备使用。或者为备用配置一个复制槽...
| 归档时间: |
|
| 查看次数: |
16744 次 |
| 最近记录: |