> Agora meu problema é espaço para guardar o logs transacionais(wal), aqui não
> tenho espaço para guardar esses logs como posso fazer
> para guardar esses logs de forma cíclica, sobrescrever o mais antigo de
> tempo em tempo?
Se você está guardando os logs de transação com a finalidade de backup
você deve guardar todos os logs de transação de mesmo nome ou
posteriores ao arquivo com extensão .000000.backup.
Traduzindo: você deve manter todos os logs de transação que compõem o
estado de seu banco de dados desde o momento do início da cópia. Se
você sobrescrever, ou apagar logs de transação antigos e esses logs de
transação forem necessários à restauração, seu backup é inválido.
Eu uso um script bem simples que apaga todos os logs de transação mais
antigos que o início do backup mais recente, ele está abaixo. Ajuste a
variável WAL_ARCHIVE para o diretório onde guardas seus logs de
transação. Execute o script após o backup de base. Seja feliz.
[]s
Flavio Gurgel
#!/bin/bash
# Diretorio onde fica o archive
WAL_ARCHIVE=/pgbackup/archive
# Procura último arquivo com a extensão .backup no diretório
while true; do
REF_FILE=`ls -1r $WAL_ARCHIVE | grep '.backup'`
if [ ! $REF_FILE ]; then
echo "Aguardando arquivo .backup em $WAL_ARCHIVE ... "
else
break
fi
sleep 1
done
# Apenas os primeiros 24 caracteres são interessantes no nome desse arquivo
REF_FILE_NUM=${REF_FILE:0:24}
echo "REF_FILE_NUM=$REF_FILE_NUM"
# Faz o rm sobre uma lista interativa, usando comparação alfabética
com o arquivo encontrado
for i in `ls -1 $WAL_ARCHIVE` ;
do
FILE_NUM=${i:0:24}
if [[ $FILE_NUM < $REF_FILE_NUM ]]
then
echo "$FILE_NUM [ $i ] removido"
rm -f $WAL_ARCHIVE/$i
else
echo "$FILE_NUM [ $i ] não removido"
fi
done
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral