segunda-feira, 14 de fevereiro de 2011

Pós Replicação no Postgres 9.0

Em outubro de 2010, publiquei um artigo no blog sobre como fazer replicação no Postgres 9.0 com Slackware 13.0, este mini artigo que escrevo agora, segue uma sugestão de solução na pós replicação.

Um problema que foi detectado, era o que fazer com tantos arquivos gerados no ponto de montagem na partição nfs, remover a cada sete dias seria uma possível solução, mas não seria confiável, a dica sugerida aqui está no diretório contrib do próprio Postgres e que se chama pg_arquivecleanup, tomando por base os fontes do Postgres vamos instalar essa contrib

#cd /usr/local/postgres-9.0.2/contrib/pg_arquivecleanup 

#make pg_arquivecleanup 

#make install pg_arquivecleanup 


Feito isso será criado uma arquivo binário chamado chamado pg_arquivecleanup no diretório de binários, default do Postgres em /usr/local/pgsql/bin

Depois adicionar no final do arquivo recovery.conf, este usado apenas nos slaves, a chamada do pg_archivecleanup, para isso, adicionando a seguinte linha: archive_cleanup_command = 'pg_archivecleanup /path/for/backups %r', conforme exemplo abaixo:

#echo archive_cleanup_command = 'pg_archivecleanup /mnt/postgres %r' >>  /usr/local/pgsql/data/recovery.conf 

#cat /usr/local/pgsql/data/recovery.conf  

standby_mode = 'on'

primary_conninfo = 'host=10.3.128.1 port=5432 user=postgres password=postgres'

restore_command = 'cp /mnt/postgres/%f %p'

trigger_file = '/tmp/trigger.pgsql.5432'

archive_cleanup_command = 'pg_archivecleanup  /mnt/postgres %r'

Após isso dá um restart no serviço do Postgres no(s) servidor(es) slave(s).

A contrib pg_archivecleanup remove os fragmentos da replicação de forma confiável, evitando que ocupe espaço desnecessário no servidor do banco.


Espero ter ajudado

O Peregrino.

Um comentário: