pg_archivecleanup 没有找到 Postgres 9.1,即使它已安装?

pg_archivecleanup 没有找到 Postgres 9.1,即使它已安装?

我在 2 台 Postgres 9.1 服务器上设置了流复制。除了 archivecleanup 之外,其他一切都正常。日志中显示:

sh: 1: pg_archivecleanup: not found
2013-11-19 09:17:37 GMT WARNING:  archive_cleanup_command "pg_archivecleanup /var/lib   /postgresql/9.1/wals/ %r": return code 32512

我可以看到 pg_archivecleanup 位于 /usr/lib/postgresql/9.1/bin 中。为什么 Postgres 看不到它?

答案1

如果你使用的是 Postgres 9.1流式复制你为什么需要档案清理?

我建议针对您的整个情况采取以下替代方案:

  1. 将日志段保留设置为合理的值。
    “合理”的一个良好起点是设置为wal_keep_segments保留与您之前在主存档中保留的日志段数量大致相同。
    您可以根据需要从那里进行调整。

  2. 关闭archive_mode服务器。
    流式复制消除了这种需要,并且上面的 (1) 意味着您将拥有大量日志段,如果需要,可以从中进行恢复。

  3. 删除从属服务器上的pg_archivecleanup命令。 (因为在流复制中你根本不需要它。)recovery.conf


根据您的环境,您可以选择省略 (2)(如果您确实需要 WAL 存档而不是复制),但在大多数情况下,您只有该存档,因此无论如何您都可以进行复制/日志传送。节省磁盘 I/O。

答案2

/usr/lib/postgresql/9.1/bin可能不在您的路径中。我建议您在配置文件中输入完整路径。

相关内容