Seus entendimentos do backup incremental/PITR parecem estar corretas, então
vou focar nas dúvidas que restaram.

2014-07-09 10:31 GMT-03:00 Alessandro Lima <[email protected]>:

> Mas a minha dúvida maior é na manutenção destes backups:
> 1- a pasta que eu criei para copiar os logs WAL nunca diminui? mesmo
> reciclando a pasta pg_xlog
>

O pg_xlog é controlado pelo próprio PostgreSQL, já o local onde você está
salvando os segmentos de log devem ser controlados por você. Na verdade o
PostgreSQL nem sabe da existência ou local desta, logo se quiser que ela
"diminua", você mesmo deve apagar os arquivos que não considera mais
necessário.


> 2- a limpeza da pasta pg_xlog é feita excluindo os arquivos com extensão
> .backup?
>

Não. Nunca, em hipótese alguma, nem em sonho, encoste em nenhum dos
arquivos na pasta pg_xlog. Deixe o PostgreSQL controlá-los. Só garanta que
o código de retorno do comando que colocaras no archive_command esteja
funcionando corretamente e que o arquivamento está sendo feito. Uma causa
comum de inchaço da pg_xlog é a falha do archive_command.


> 3- o ideal é repetir o pg_basebackup de tempos em tempos?
>

Sim.

Na verdade você poderia fazer um só e acumular os logs, mas isso faria com
que o tempo de restauração só aumentasse, ficando impraticável. O ideal é
mesmo um base backup de tempos em tempos.


> neste caso devo excluir minha pasta com logs WAL antigos?
>

Quando você faz um base backup o PostgreSQL cria o arquivo .backup. É um
arquivo texto, leia este arquivo e verás dois registros: "START WAL
LOCATION" e "STOP WAL LOCATION". Estes registros indicam quais são os logs
de transação que este backup precisa obrigatoriamente. Logo, para
restaurá-lo você precisará ao menos ter os arquivos gerados entre o START e
o STOP, os demais não são necessários, mas possivelmente você vai querer
mais arquivos à frente do STOP, para fazer uma restauração de tudo possível
ou ainda um PITR (Point In Time Recovery).

Agora, quanto à apagar os logs de transação, vai depender de sua política
de backup. Se, por exemplo, a cada backup base realizado você decidir
apagar o backup base anterior, você poderá apagar todos logs de transação
anteriores ao valor do START daquele que será mantido. A regra seria: "ao
apagar backups base antigos, você pode apagar todos os logs de transação
anteriores ao START do primeiro backup base que será mantido". O ponto do
START também é o indicado no nome do arquivo .backup, seria "<START LOG
filename>.<START LOG position>.backup", isso facilita (e.g. apague todos
até o .backup e o que tem o mesmo número).

Para apagar os arquivos antigos, você pode usar o pg_archivecleanup [1]. Ou
outras ferramentas de backup, como o barman ou o pg_rman.

[1] http://www.postgresql.org/docs/current/static/pgarchivecleanup.html



-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a