Monit “cheque” do PostgreSQL tende a falhar durante uma execução do pg_dump, existe uma maneira melhor?

2

Eu uso o pg_dump para meu backup principal, uma vez a cada três horas. Eu também uso monit. Quando monit verifica se o PostgreSQL está ativo durante a execução do pg_dump, às vezes ele expira e reinicia o postgres. Isso resulta em falha no backup.

O que fazer? Mover para o Write-Ahead-Logs? Desativar monit durante o backup? O banco de dados está servindo um site ativo nesses horários.

Monit config.:

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
    
por Terry G Lorber 09.01.2014 / 21:53

1 resposta

2

Então, algo assim?

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

Dessa forma, o monit check teria que ser inacessível por 15 minutos antes do reinício. Assumindo um intervalo de ciclo de 180 segundos. Obviamente, você pode se ajustar ao seu gosto, mas a redefinição após uma única verificação com falha pode resultar em falsos positivos se o servidor estiver ocupado ou ocupado de alguma outra forma.

    
por 09.01.2014 / 22:35