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