Den vanliga processen är:
pg_dumpall --globals-only
för att få användare/roller/etcpg_dump -Fc
för varje databas för att få en snygg komprimerad dump som lämpar sig för användning medpg_restore
.
Ja, den här typen suger. Jag skulle verkligen vilja lära ut pg_dump
för att bädda in pg_dumpall
matas ut i -Fc
dumpar, men just nu vet den tyvärr inte hur så du måste göra det själv.
Fram till PostgreSQL 11 fanns det också en otäck varning med detta tillvägagångssätt:Varken pg_dump
, inte heller pg_dumpall
i --globals-only
läge skulle dumpa användaråtkomst GRANT
s på DATABASE
s. Så du var i stort sett tvungen att extrahera dem från katalogerna eller filtrera en pg_dumpall
. Detta är fixat i PostgreSQL 11; se release notes
.
Du bör också känna till fysiska säkerhetskopior - pg_basebackup
, PgBarman och WAL-arkivering, PITR, etc. Dessa erbjuder mycket "finare" återhämtning, ner till minut eller individuell transaktion. Nackdelen är att de tar upp mer utrymme, bara kan återställas till samma PostgreSQL-version på samma plattform och säkerhetskopiera alla tabeller i alla databaser utan möjlighet att utesluta någonting.