Zwykły proces to:
pg_dumpall --globals-only
aby zdobyć użytkowników/role/etcpg_dump -Fc
dla każdej bazy danych, aby uzyskać ładny skompresowany zrzut odpowiedni do użycia zpg_restore
.
Tak, ten rodzaj jest do bani. Naprawdę chciałbym uczyć pg_dump
osadzić pg_dumpall
wypisz do -Fc
zrzuca, ale teraz niestety nie wie, jak to zrobić, więc musisz to zrobić sam.
Aż do PostgreSQL 11 istniało również nieprzyjemne zastrzeżenie związane z tym podejściem:Ani pg_dump
ani pg_dumpall
w --globals-only
tryb zrzuciłby dostęp użytkownika GRANT
s na DATABASE
s. Musiałeś więc wyodrębnić je z katalogów lub przefiltrować pg_dumpall
. Zostało to naprawione w PostgreSQL 11; zobacz informacje o wydaniu
.
Powinieneś także wiedzieć o fizycznych kopiach zapasowych - pg_basebackup
, archiwizacja PgBarman i WAL, PITR itp. Oferują one znacznie „drobniejsze” odzyskiwanie, co do minuty lub pojedynczej transakcji. Minusem jest to, że zajmują więcej miejsca, można je przywrócić tylko do tej samej wersji PostgreSQL na tej samej platformie i tworzą kopie zapasowe wszystkich tabel we wszystkich bazach danych bez możliwości wykluczenia czegokolwiek.