PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

pg_dump vs pg_dumpall? qual usar para backups de banco de dados?


O processo usual é:
  • pg_dumpall --globals-only para obter usuários/funções/etc
  • pg_dump -Fc para cada banco de dados para obter um bom dump compactado adequado para uso com pg_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.