Der übliche Ablauf ist:
pg_dumpall --globals-only
um Benutzer/Rollen/etc zu erhaltenpg_dump -Fc
für jede Datenbank, um einen schönen komprimierten Dump zu erhalten, der für die Verwendung mitpg_restore
geeignet ist .
Ja, diese Art ist scheiße. Ich würde wirklich gerne pg_dump
unterrichten um pg_dumpall
einzubetten Ausgabe in -Fc
Dumps, aber im Moment weiß es leider nicht wie, also musst du es selbst machen.
Bis PostgreSQL 11 gab es bei diesem Ansatz auch einen hässlichen Vorbehalt:Weder pg_dump
, noch pg_dumpall
in --globals-only
Modus würde den Benutzerzugriff GRANT
ablegen s auf DATABASE
s. Sie mussten sie also praktisch aus den Katalogen extrahieren oder einen pg_dumpall
filtern . Dies wurde in PostgreSQL 11 behoben; siehe Versionshinweise
.
Sie sollten auch über physische Backups Bescheid wissen - pg_basebackup
, PgBarman- und WAL-Archivierung, PITR usw. Diese bieten eine viel "feiner granulierte" Wiederherstellung bis hin zur Minute oder einzelnen Transaktion. Der Nachteil ist, dass sie mehr Speicherplatz beanspruchen, nur auf dieselbe PostgreSQL-Version auf derselben Plattform wiederhergestellt werden können und alle Tabellen in allen Datenbanken sichern, ohne dass irgendetwas ausgeschlossen werden kann.