> 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

Responder a