Der übliche Ablauf ist:
pg_dumpall --globals-onlyum Benutzer/Rollen/etc zu erhaltenpg_dump -Fcfür jede Datenbank, um einen schönen komprimierten Dump zu erhalten, der für die Verwendung mitpg_restoregeeignet 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.