Obvyklý postup je:
pg_dumpall --globals-only
získat uživatele/role/atdpg_dump -Fc
pro každou databázi získáte pěkný komprimovaný výpis vhodný pro použití s pg_restore
.
Ano, tento druh je na hovno. Opravdu bych rád učil pg_dump
pro vložení pg_dumpall
výstup do -Fc
vysype, ale právě teď bohužel neví jak, takže to musíte udělat sami.
Až do PostgreSQL 11 existovalo s tímto přístupem také ošklivé upozornění:Ani pg_dump
, ani pg_dumpall
v --globals-only
režim by vypsal přístup uživatele GRANT
s na DATABASE
s. Takže jste je v podstatě museli extrahovat z katalogů nebo filtrovat pg_dumpall
. Toto je opraveno v PostgreSQL 11; viz poznámky k vydání
.
Měli byste také vědět o fyzických zálohách - pg_basebackup
, PgBarman a archivace WAL, PITR, atd. Tyto nabízejí mnohem "jemnější" obnovu, až do minuty nebo jednotlivé transakce. Nevýhodou je, že zabírají více místa, lze je obnovit pouze na stejnou verzi PostgreSQL na stejné platformě a zálohují všechny tabulky ve všech databázích bez možnosti cokoliv vyloučit.