J'ai essayé pg_dump
puis sur une machine séparée, j'ai essayé d'importer le sql et de remplir la base de données, je vois
CREATE TABLE
ERROR: role "prod" does not exist
CREATE TABLE
ERROR: role "prod" does not exist
CREATE TABLE
ERROR: role "prod" does not exist
CREATE TABLE
ERROR: role "prod" does not exist
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
WARNING: no privileges could be revoked for "public"
REVOKE
ERROR: role "postgres" does not exist
ERROR: role "postgres" does not exist
WARNING: no privileges were granted for "public"
GRANT
ce qui signifie que mes informations user
et roles
et grant
ne sont pas dans pg_dump
D'un autre côté, nous avons pg_dumpall
, J'ai lu conversation , et cela ne me mène nulle part?
Question
- Lequel dois-je utiliser pour les sauvegardes de bases de données? pg_dump
ou pg_dumpall
?
- l'exigence est que je puisse prendre la sauvegarde et que je puisse importer sur n'importe quelle machine et cela devrait très bien fonctionner.
Le processus habituel est:
pg_dumpall --globals-only
pour obtenir les utilisateurs/rôles/etcpg_dump -Fc
pour chaque base de données pour obtenir un joli fichier compressé adapté à une utilisation avec pg_restore
.Oui, ce genre de suce. J'aimerais vraiment enseigner pg_dump
à intégrer pg_dumpall
sortie dans -Fc
vidages, mais pour l'instant, malheureusement, il ne sait pas comment vous devez le faire vous-même.
Au moment de la rédaction (9.4), il y a aussi une mise en garde désagréable avec cette approche: Ni pg_dump
, ni pg_dumpall
dans --globals-only
mode, videra l'accès utilisateur GRANT
s sur DATABASE
s.
Vous devez également connaître les sauvegardes physiques - pg_basebackup
, Archivage PgBarman et WAL, PITR, etc. Ils 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 sur 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.