Le processus habituel est :
pg_dumpall --globals-only
pour obtenir des utilisateurs/rôles/etcpg_dump -Fc
pour chaque base de données pour obtenir un joli vidage compressé utilisable avecpg_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.