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