![5 tekniske tips om hvordan du kan bli usynlig online](/f/69557aa07067a30da5066689caafe945.jpg?width=100&height=100)
Noen ganger når gjenopprette en multiskjemadatabase fra en sikkerhetskopifil kan det være lurt å ekskludere ett eller flere skjemaer, av en eller annen grunn.
For eksempel, hvis du gjenoppretter en enorm database for utviklingsformål, vil du kanskje ikke det gjenopprett et skjema som du vet har massevis av data, noe som kan føre til at gjenopprettingsprosessen tar det lang.
[ Du kommer kanskje også til å like: Hvordan sikkerhetskopiere og gjenopprette en PostgreSQL-database ]
pg_restore kommandolinjeverktøyet gjør det mulig å ekskludere ett eller flere skjemaer når du gjenoppretter en database fra en sikkerhetskopifil opprettet av pg_dump. Du kan bruke den -N
eller --ekskluder-skjema
alternativet for å gjenopprette objekter i det navngitte skjemaet.
PostgreSQL støtter ulike nyttige database backup og gjenoppretter funksjoner. I denne veiledningen vil vi vise hvordan du ekskluderer et skjema mens du gjenoppretter en PostgreSQL multi-skjema database fra en sikkerhetskopifil.
Før du starter gjenopprettingsprosessen, i tilfelle du utfører den på en ny server, sørg for at eieren eller brukeren av databasen som definert i sikkerhetskopien er opprettet på serveren:
$ pg_restore -d minappdb -N skjemanavn minappdb.dump. ELLER. $ pg_restore -d myappdb --exclude-schema=schema_name myappdb.dump.
I kommandoen ovenfor, flagget:
-d
– brukes til å spesifisere måldatabasenavnet.-N
– spesifiserer navnet på skjemaet som skal ekskluderes under gjenopprettingsprosessen.myappdb.dump
– er databasens sikkerhetskopifilnavn. Merk at filen skal være i et av ikke-rentekstformatene som er opprettet av pg_dump.For å ekskludere flere skjemaer, bruk flere -N
flagg som vist.
$ pg_restore -d minappdb -N skjemanavn1 -N skjemanavn2 -N skjemanavn3 minappdb.dump. ELLER. $ pg_restore -d myappdb --exclude-schema=schema_name1 --exclude-schema=schema_name2 --exclude-schema=schema_name3 myappdb.dump.
Du kan fortelle pg_restore for å lage databasen spesifisert av -d
alternativet hvis det ikke eksisterer, ved å bruke -C
eller --skape
bytte som følger:
$ pg_restore -d minappdb -C -N skjemanavn minappdb.dump. ELLER. $ pg_restore -d minappdb --opprett -N skjemanavn minappdb.dump.
Du bør merke deg at i tilfelle -C
switch brukes, som i forrige kommando, databasenavnet minappdb spesifisert ved hjelp av -d
bryteren brukes bare til å kjøre den første "DROP DATABASE myappdb" og "LAG DATABASE myappdb”-kommandoer, gjenopprettes alle data til databasenavnet som finnes i sikkerhetskopifilen.
For å slippe eller rense og gjenskape måldatabasen før du kobler til den, bruk --ren
alternativ som vist.
$ pg_restore --clean -d testdb -n skjemanavn minappdb.dump.
Som standard, hvis det oppstår en feil under kjøring av SQL kommando under restaureringsprosessen, pg_restore vil fortsette med prosessen og bare vise feilene.
Du kan la pg-gjenoppretting avsluttes når det oppstår en feil ved å legge til -e
eller --avslutt ved feil
alternativ:
$ pg_restore -e -d testdb -n skjemanavn minappdb.dump. ELLER. $ pg_restore --exit-on-error -d testdb -n schema_name myappdb.dump.
For å gjøre restaureringsprosessen raskere, kan du bruke -j
eller --antall jobber
å kjøre samtidig. Dette alternativet sikrer at trinn som å lage indekser, opprette begrensninger eller laste inn data vil bli utført samtidig ved bruk av samtidige økter på opptil det spesifiserte antallet jobber.
Det avhenger imidlertid sterkt av antall CPU-kjerne og diskkonfigurasjoner på klienten, serveren og nettverket:
$ pg_restore -j 4 --clean -d testdb -n skjemanavn minappdb.dump. ELLER. $ pg_restore --number-of-jobs=4 --clean -d testdb -n schema_name myappdb.dump.
Du kan lese mer om pg_restore ved å se man-siden som vist.
$ mann pg_restore.
Det er alt vi hadde for deg i denne korte guiden. Hvis du har kommentarer eller spørsmål, bruk tilbakemeldingsskjemaet nedenfor for å nå oss.