У меня есть база данных с именем "A", которая имеет две схемы "B" и "C". Я хочу сделать резервную копию и восстановить схему "B" на другом сервере? не уверен, как это сделать, так как я новичок в Postgres. Нужно ли создавать новую БД на новом сервере с именем «А», а затем восстанавливать схему «Б» на нем. Пожалуйста, помогите с командами.
--- информация из комментария к ответу Петра:
Я хочу сделать резервную копию и восстановить схему "B" + данные. Во-вторых, я забыл упомянуть, что Postgresql 9.1 работает на Ubuntu 12.04
источник
-b
опцию для сброса с каплями. Обратите внимание, что со-b
всеми каплями добавляются не только для одной схемы.Вы можете добавить параметр
-n [schema name]
Комментарий этого параметра:источник
* Базовый пример:
Я создаю файлы "dump.bat" и "restore.bat" в окне для дампа / восстановления
1 / Резервное копирование:
Полученные результаты:
* Примечание: некоторые важные опции:
2 / Восстановление:
"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"
(**)(**) На самом деле, если ваш файл формата * .sql, вы можете использовать pgAdmin (или psql) для восстановления. Вы должны использовать pg_restore для восстановления файла .tar ( .bakup ...)
источник
--schema-only
данные, они должны быть в дампе, иначе у вас может не быть привилегий для выбора содержимого таблицы.Я написал сценарий, который делает это тривиальным. Простой экспорт функций SQL и схем таблиц в отдельные
*.sql
файлы. Упрощает управление, резервное копирование и контроль источников:https://gist.github.com/dantheman213/aff70ee42a11f2d1fa46983878cd62e1
источник
Это может быть использовано для резервного копирования схемы
Это можно использовать для восстановления БД
источник