PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

pg_dump contre pg_dumpall ? lequel utiliser pour les sauvegardes de bases de données ?

Le processus habituel est :

  • pg_dumpall --globals-only pour obtenir des utilisateurs/rôles/etc
  • pg_dump -Fc pour chaque base de données pour obtenir un joli vidage compressé utilisable avec pg_restore .

Oui, ce genre de merde. J'aimerais vraiment enseigner pg_dump pour intégrer pg_dumpall sortie en -Fc dumps, mais pour le moment, malheureusement, il ne sait pas comment vous devez le faire vous-même.

Jusqu'à PostgreSQL 11, il y avait aussi une mauvaise mise en garde avec cette approche :Ni pg_dump , ni pg_dumpall dans --globals-only le mode viderait l'accès utilisateur GRANT s sur DATABASE s. Il fallait donc à peu près les extraire des catalogues ou filtrer un pg_dumpall . Ceci est corrigé dans PostgreSQL 11; voir les notes de version .

Vous devez également connaître les sauvegardes physiques - pg_basebackup , Archivage PgBarman et WAL, PITR, etc. Ceux-ci offrent une récupération beaucoup plus "fine", jusqu'à la minute ou à la transaction individuelle. L'inconvénient est qu'ils occupent plus d'espace, ne peuvent être restaurés que dans la même version de PostgreSQL sur la même plate-forme et sauvegardent toutes les tables de toutes les bases de données sans possibilité d'exclure quoi que ce soit.