sql >> Databasteknik >  >> RDS >> PostgreSQL

pg_dump vs pg_dumpall? vilken ska man använda för säkerhetskopiering av databas?

Den vanliga processen är:

  • pg_dumpall --globals-only för att få användare/roller/etc
  • pg_dump -Fc för varje databas för att få en snygg komprimerad dump som lämpar sig för användning med pg_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.




  1. Kontrollera om en specifik mysql-anslutning redan finns under ett php-skript?

  2. Välj från flera tabeller med laravel fluent query builder

  3. I MySQL fungerar CHAR()-funktionen konstigt

  4. Anropa pusher när mysql har ändrats