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

Monit «жив», проверка PostgreSQL имеет тенденцию терпеть неудачу во время запуска pg_dump, есть ли лучший способ?

Я использую pg_dump для своей основной резервной копии каждые три часа. Еще пользуюсь monit. Когда monit проверяет, жив ли PostgreSQL во время запуска pg_dump, он иногда выходит из строя и перезапускает postgres. Это приводит к сбою резервного копирования.

Что делать? Перейти к журналам упреждающей записи? Отключить мониторинг во время резервного копирования? В это время база данных обслуживает активный веб-сайт.

Конфигурация монитора:

check process postgres with pidfile /usr/local/pgsql/data/postmaster.pid
group database
start program = "/etc/init.d/postgresql start"
stop program = "/etc/init.d/postgresql stop"
if failed unixsocket /tmp/.s.PGSQL.5432 protocol pgsql then restart
if failed host 127.0.0.1 port 5432      protocol pgsql then restart
if 5 restarts within 5 cycles then timeout

Так что-то вроде этого?

if failed unixsocket /tmp/.s.PGSQL.5432 protocol pgsql for 5 cycles then restart
if failed host 127.0.0.1 port 5432      protocol pgsql for 5 cycles then restart
if 5 restarts within 25 cycles then timeout

Таким образом, проверка монитора должна быть недоступна в течение 15 минут перед перезапуском. Предполагая интервал цикла 180 секунд. Очевидно, вы можете приспособиться к своим вкусам, но сброс после единственной неудачной проверки может привести к ложным срабатываниям, если ваш сервер занят или занят иным образом.