Den vanliga processen är:
pg_dumpall --globals-onlyför att få användare/roller/etcpg_dump -Fcfö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.