Назад | Перейти на главную страницу

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

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

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

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

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

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


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

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