pg_archivecleanup找不到Postgres 9.1,即使安装了?

我有2个Postgres 9.1服务器上的stream式复制设置。 除了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不能看到这个?

如果您正在使用Postgres 9.1的stream式复制,为什么需要归档清理?

我build议以下替代你的整个情况:

  1. 将日志段的保留设置为合理的。
    “合理”的一个好的起点是设置wal_keep_segments以保持大致相同数量的日志段,就像以前保存在主文件中一样。
    您可以根据需要进行调整。

  2. closures服务器上的archive_mode
    stream式复制避免了这种需要,上面的(1)意味着如果需要,您将有大量的日志段来恢复。

  3. 摆脱奴隶的recovery.conf中的pg_archivecleanup命令。
    (因为你不需要stream式复制。)


根据您的环境,您可能会select退出(2)(如果您真的需要复制以外的WAL存档),但是在大多数情况下,您只能使用该存档,因此无论如何您都可以进行复制/日志传送。 保存自己的磁盘I / O。

/usr/lib/postgresql/9.1/bin可能不在你的path中。 我build议你把你的configuration文件的完整path。