Uneori când restaurarea unei baze de date cu mai multe scheme dintr-un fișier de rezervă, poate doriți să excludeți una sau mai multe scheme, dintr-un motiv sau altul.
De exemplu, dacă restaurați o bază de date uriașă în scopuri de dezvoltare, este posibil să nu doriți restaurați o schemă despre care știți că are o mulțime de date, ceea ce ar putea face ca procesul de restaurare să ia acest lucru lung.
[ S-ar putea sa-ti placa si: Cum să faceți backup și să restaurați o bază de date PostgreSQL ]
pg_restore utilitarul de linie de comandă permite excluderea uneia sau mai multor scheme la restaurarea unei baze de date dintr-un fișier de rezervă creat de pg_dump. Îl poți folosi -N
sau --exclude-schema
opțiunea de a restabili obiectele din schema numită.
PostgreSQL acceptă diverse funcții utile de backup și restaurare a bazei de date. În acest ghid, vom arăta cum să excludem o schemă în timp ce restaurăm un PostgreSQL bază de date multischemă dintr-un fișier de rezervă.
Înainte de a începe procesul de restaurare, în cazul în care îl efectuați pe un server nou, asigurați-vă că proprietarul sau utilizatorul bazei de date, așa cum este definit în backup, este creat pe server:
$ pg_restore -d myappdb -N schema_name myappdb.dump. SAU. $ pg_restore -d myappdb --exclude-schema=nume_schemă myappdb.dump.
În comanda de mai sus, steag:
-d
– este folosit pentru a specifica numele bazei de date țintă.-N
– specifică numele schemei de exclus în timpul procesului de restaurare.myappdb.dump
– este numele fișierului de backup al bazei de date. Rețineți că fișierul ar trebui să fie într-unul dintre formatele non-text simplu, așa cum a fost creat de pg_dump.Pentru a exclude mai multe scheme, utilizați multiple -N
steaguri așa cum se arată.
$ pg_restore -d myappdb -N schema_name1 -N schema_name2 -N schema_name3 myappdb.dump. SAU. $ pg_restore -d myappdb --exclude-schema=schema_name1 --exclude-schema=schema_name2 --exclude-schema=schema_name3 myappdb.dump.
Poți spune pg_restore pentru a crea baza de date specificată de -d
opțiunea dacă nu există, folosind opțiunea -C
sau --crea
comutați după cum urmează:
$ pg_restore -d myappdb -C -N schema_name myappdb.dump. SAU. $ pg_restore -d myappdb --create -N schema_name myappdb.dump.
Ar trebui să rețineți că, în cazul în care -C
switch este folosit, ca în comanda anterioară, numele bazei de date myappdb specificat folosind -d
comutatorul este folosit doar pentru a rula inițial „DROP BAZĂ DE DATE myappdb" și "CREAȚI BAZĂ DE DATE myappdb”, toate datele sunt restaurate în numele bazei de date care există în fișierul de rezervă.
Pentru a elimina sau curăța și recrea baza de date țintă înainte de a vă conecta la ea, utilizați --curat
opțiunea așa cum se arată.
$ pg_restore --clean -d testdb -n schema_name myappdb.dump.
În mod implicit, dacă a apărut o eroare în timpul rulării programului SQL comandă în timpul procesului de restaurare, pg_restore va continua procesul și va afișa pur și simplu erorile.
Poți să lași pg-restaurare se încheie atunci când se întâlnește o eroare prin adăugarea -e
sau --exit-on-error
opțiune:
$ pg_restore -e -d testdb -n schema_name myappdb.dump. SAU. $ pg_restore --exit-on-error -d testdb -n schema_name myappdb.dump.
Pentru a accelera procesul de restaurare, puteți utiliza -j
sau --numar-de-locuri de munca
a rula concomitent. Această opțiune asigură că pașii precum crearea de indexuri, crearea constrângerilor sau încărcarea datelor vor fi executați simultan folosind sesiuni concurente de până la numărul specificat de joburi.
Totuși, depinde foarte mult de numărul de CPU-uri și de configurația discului de pe client, server și rețea:
$ pg_restore -j 4 --clean -d testdb -n schema_name myappdb.dump. SAU. $ pg_restore --number-of-jobs=4 --clean -d testdb -n schema_name myappdb.dump.
Puteți citi mai multe despre pg_restore prin vizualizarea paginii sale de manual așa cum se arată.
$ man pg_restore.
Asta este tot ce am avut pentru tine în acest scurt ghid. Dacă aveți comentarii sau întrebări, folosiți formularul de feedback de mai jos pentru a ne contacta.