Eu tenho um servidor principal e outros dois servidores estão replicando do principal.
Eu tenho espaço em disco completo no servidor principal (eu tenho um archive_command
que coloca arquivos wal no /wal_archive/
diretório).
Ficou cheio e o log do PostgreSQL mostra o erro:
archive command failed:
2019-06-04 09:52:49.079 EEST [3365] LOG: archive command failed with exit code 1
2019-06-04 09:52:49.079 EEST [3365] DETAIL: The failed archive command was: test ! -f /wal_archive/000000010000028C0000003B && cp pg_xlog/000000010000028C0000003B /wal_archive/000000010000028C0000003B
Limpei o /wal_archive/
diretório com pg_archivecleanup
, mas o PostgreSQL ainda lança o mesmo erro.
Eu tentei recarregar a configuração do PostgreSQL sem fazer alterações na própria configuração e sem reiniciar usando:
/etc/init.d/postgresql reload
mas ainda o mesmo, no log, o PostgreSQL lança um erro. Como devo retomar a cópia do wal_archive para o diretório wal_archive?
Devo mudar archive_command
para true
, recarregar e alterar o arquivo de volta para o original novamente?
Estou tentando evitar reiniciar o próprio servidor.
Parece que o arquivamento conseguiu gravar parcialmente o arquivo WAL antes que o espaço acabasse.
Então o
test
em seuarchive_command
notará que já existe um fike com esse nome e falhará.Nesse caso, a solução seria remover manualmente esse segmento WAL parcialmente arquivado para que a próxima tentativa de arquivá-lo seja bem-sucedida.
Você pode querer melhorar seu
archive_command
removendo o arquivo secp
falhar (enquanto ainda retorna um código de retorno diferente de zero).