Mam bazę danych o nazwie „A”, która ma dwa schematy „B” i „C”. Chcę wykonać kopię zapasową i przywrócić schemat „B” na innym serwerze? Nie jestem pewien, jak to zrobić, ponieważ jestem nowy w Postgres. Czy muszę utworzyć nową bazę danych na nowym serwerze o nazwie „A”, a następnie przywrócić na niej schemat „B”. proszę o pomoc z poleceniami.
--- informacje z komentarza do odpowiedzi Piotra:
Chcę wykonać kopię zapasową i przywrócić schemat „B” + dane. Po drugie, zapomniałem wspomnieć, że Postgresql 9.1 działa na Ubuntu 12.04
źródło
-b
opcji, aby zrzucić z obiektów blob. Zauważ, że ze-b
wszystkimi obiektami blob są dodawane nie tylko dla jednego schematu.Możesz dodać parametr
-n [schema name]
Komentarz tego parametru brzmi:źródło
* Podstawowy przykład:
Tworzę pliki „dump.bat” i „restore.bat” w oknie, aby zrzucić / przywrócić
1 / Kopia zapasowa:
Wyniki:
* Uwaga: niektóre ważne opcje:
2 / Przywróć:
"C:\Program Files\PostgreSQL\9.1\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "any_database" --no-password --no-owner --no-privileges --schema name_schema_B --verbose "C:\dump_resul.sql"
(**)(**) W rzeczywistości, jeśli plik formatu to * .sql, możesz użyć pgAdmin (lub psql), aby przywrócić. Powinieneś użyć pg_restore, aby przywrócić plik .tar ( .bakup ...)
źródło
--schema-only
, dane muszą znajdować się w usypie, w przeciwnym razie możesz nie mieć uprawnień do wybierania zawartości tabeli.Napisałem skrypt, który czyni to banalnym. Łatwy eksport funkcji SQL i schematów tabel do indywidualnych
*.sql
plików. Ułatwia zarządzanie, tworzenie kopii zapasowych i kontrolę źródła:https://gist.github.com/dantheman213/aff70ee42a11f2d1fa46983878cd62e1
źródło
Można tego użyć do wykonania kopii zapasowej schematu
Można to wykorzystać do przywrócenia bazy danych
źródło