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, зачем вам нужна очистка архива?
Я предлагаю следующую альтернативу всей вашей ситуации:
Установите для своего сегмента журнала что-то разумное.
Хорошей отправной точкой для "разумного" было бы установитьwal_keep_segments
сохранить примерно такое же количество сегментов журнала, которое вы ранее хранили в архиве мастера.
Вы можете отрегулировать оттуда по мере необходимости.Выключи
archive_mode
на ваших серверах.
Потоковая репликация устраняет необходимость в этом, и (1) выше означает, что у вас будет много сегментов журнала для восстановления, если вам нужно.Избавиться от
pg_archivecleanup
командовать вrecovery.conf
на ваших рабов.
(Потому что вам просто не нужна потоковая репликация.)
В зависимости от вашей среды вы можете выбрать опускать (2) (если у вас есть реальная потребность в архиве WAL, отличном от репликации), но в большинстве случаев у вас был только этот архив, чтобы вы могли в любом случае выполнять репликацию / доставку журналов. Сохраните себе дисковый ввод-вывод.
/usr/lib/postgresql/9.1/bin
вероятно не на вашем пути. Я предлагаю вам указать полный путь в вашем конфигурационном файле.