O processo usual é:
pg_dumpall --globals-only
para obter usuários/funções/etcpg_dump -Fc
para cada banco de dados para obter um bom dump compactado adequado para uso compg_restore
.
Sim, esse tipo de merda. Eu realmente gostaria de ensinar
pg_dump
para incorporar pg_dumpall
saída em -Fc
despeja, mas agora infelizmente não sabe como, então você tem que fazer isso sozinho. Até o PostgreSQL 11 havia também uma advertência desagradável com esta abordagem:Nem
pg_dump
, nem pg_dumpall
em --globals-only
o modo despejaria o acesso do usuário GRANT
s em DATABASE
s. Então você teve que extraí-los dos catálogos ou filtrar um pg_dumpall
. Isso foi corrigido no PostgreSQL 11; consulte as notas de versão
. Você também deve saber sobre backups físicos -
pg_basebackup
, PgBarman e arquivamento WAL, PITR, etc. Estes oferecem uma recuperação muito mais "finada", até o minuto ou transação individual. A desvantagem é que eles ocupam mais espaço, só podem ser restaurados para a mesma versão do PostgreSQL na mesma plataforma e fazem backup de todas as tabelas em todos os bancos de dados sem capacidade de excluir nada.