pg_archivecleanup не найден Postgres 9.1, даже если он установлен?

У меня есть настройка потоковой репликации на 2 серверах Postgres 9.1. Все в порядке, кроме архивного цикла. В логах написано:

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. Почему Постгрес не видит этого?

2 ответа

Если вы используете потоковую репликацию Postgres 9.1, зачем вам нужна очистка архива?

Я предлагаю следующую альтернативу всей вашей ситуации:

  1. Установите для своего сегмента журнала что-то разумное.
    Хорошей отправной точкой для "разумного" было бы установить wal_keep_segments сохранить примерно такое же количество сегментов журнала, которое вы ранее хранили в архиве мастера.
    Вы можете отрегулировать оттуда по мере необходимости.

  2. Выключи archive_mode на ваших серверах.
    Потоковая репликация устраняет необходимость в этом, и (1) выше означает, что у вас будет много сегментов журнала для восстановления, если вам нужно.

  3. Избавиться от pg_archivecleanup командовать в recovery.conf на ваших рабов.
    (Потому что вам просто не нужна потоковая репликация.)


В зависимости от вашей среды вы можете выбрать опускать (2) (если у вас есть реальная потребность в архиве WAL, отличном от репликации), но в большинстве случаев у вас был только этот архив, чтобы вы могли в любом случае выполнять репликацию / доставку журналов. Сохраните себе дисковый ввод-вывод.

/usr/lib/postgresql/9.1/bin вероятно не на вашем пути. Я предлагаю вам указать полный путь в вашем конфигурационном файле.

Другие вопросы по тегам