Postgresql com Backup Incremental — parte 3 — Fazendo a limpeza de logs (pg_archivecleanup)
Mayron Ceccon
Posted on January 23, 2020
Para a limpeza dos logs antigos usaremos o comando pg_archivecleanup.
O pg_archivecleanup foi projetado para ser utilizado no archive_cleanup_command, após o recovery de um banco secundário. Mas como não estamos trabalhando com replicação, utilizamos de outra forma este comando, para facilitar criei um arquivo bash, onde verifico o último arquivo ".backup" da pasta de logs, e faço a exclusão a partir dele.
Os arquivos .backup contém os dados referentes aos processos do pg_basebackup, informando quais são os logs anteriores a execução.
O arquivo bash ficou com as seguintes linhas de comando:
DIR_LOGS='/var/lib/postgresql/pg_log_archive'
LAST_LOG=$(cd ${DIR_LOGS} ; ls -rt *.backup | tail -1)
/usr/lib/postgresql/9.3/bin/pg_archivecleanup "${DIR_LOGS}" "${LAST_LOG}"
onde,
DIR_LOGS é o local onde os logs (Wal) estão sendo gravados, e o LAST_LOG é o último arquivo .backup salvo, após o processo de pg_basebackup.
Ao executar o pg_archivecleanup, somente os logs (Wal), posteriores ao último basebackup continuam na pasta, com isso evitamos o acumulo de logs.
Em um banco onde se tem muitas transações, sem o devido cuidado com a exclusão dos logs, podemos ficar sem espaço em disco em pouco tempo, por isso é de grande importância esta rotina.
Posted on January 23, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
January 23, 2020
January 23, 2020