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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral