On 08-07-2014 10:43, Alessandro Lima wrote:
> Tenho um banco 9.3 apenas com uma base de dados, quando faço dump nesta
> base de dados o arquivo fica apenas com 150MB, mas quando faço dump_all o
> arquivo fica com 2,1GB
> 
> Segue abaixo comando utilizados:
> pg_dumpall -h localhost -p 5432 -U postgres -v -f /backup/dumpall.backup
> pg_dump -h localhost -p 5432 -U postgres -F c -v -f /backup/dump.backup base
> 
> Esta diferença toda é devido ao pg_dumpall não compactar o arquivo gerado?
> 

Isso mesmo... o pg_dumpall extrai todos databases do seu cluster em um
script SQL. E aquele seu pg_dump está usando o formato custom "-F c" e
este por padrão é compactado.


> Pesquisando na internet recomendaram fazer o seguinte:
> 
>    - pg_dumpall --globals-only (para obter users/roles/etc)
>    - pg_dump -Fc (para cada base de dados)
> 
> Mas esta estratégia deixa brechas para falhas, se alguém alterar o nome de
> alguma base ou criar uma nova e esquecer de alterar a rotina de dump !!!
> 

Vc pode fazer um shell script que dá uma olhada no catálogo do
PostgreSQL (pg_database) e exporta um dump para cada base de dados, algo
do tipo:

for db in $(psql -U postgres -At -c "select datname from pg_database
where datistemplate is false")
do
  pg_dump -U postgres -Fc -v -f /backup/dump_${db}.backup
done

E ainda vc pode utilizar outra estratégia de backup, o físico [1] que
vai exportar todo seu cluster.


> Qual a melhor solução?
> 

A que melhor se encaixar em seu cenário. ;-)

Att,


[1] http://www.postgresql.org/docs/9.3/static/backup.html

-- 
   Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a