В зависимости от того, как вы создали файл дампа, вам нужно рассмотреть два инструмента.
Первым источником информации должна быть справочная страница, pg_dump(1)
поскольку именно она создает сам дамп. Это говорит:
Дампы могут быть выведены в формате сценария или файла архива. Дампы сценариев - это текстовые файлы, содержащие команды SQL, необходимые для восстановления базы данных до состояния, в котором она находилась на момент сохранения. Чтобы восстановить из такого скрипта, передайте его в psql (1). Файлы сценариев могут использоваться для восстановления базы данных даже на других машинах и других архитектурах; с некоторыми изменениями даже на других продуктах баз данных SQL.
Альтернативные форматы архивных файлов должны использоваться с pg_restore (1) для перестройки базы данных. Они позволяют pg_restore быть избирательным в отношении того, что восстанавливается, или даже изменять порядок элементов перед восстановлением. Форматы архивных файлов предназначены для переноса между архитектурами.
Так что зависит от того, как он был сброшен. Вы, вероятно, можете выяснить это с помощью превосходной file(1)
команды - если в ней упоминается текст ASCII и / или SQL, его следует восстановить с помощью, в psql
противном случае вам, вероятно, следует использоватьpg_restore
Восстановление довольно просто:
psql -U username -d dbname < filename.sql
-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql
или
pg_restore -U username -d dbname -1 filename.dump
Проверьте их соответствующие man-страницы - есть довольно много вариантов, которые влияют на то, как работает восстановление. Возможно, вам придется очистить ваши «живые» базы данных или воссоздать их из template0 (как указано в комментарии) перед восстановлением, в зависимости от того, как были созданы дампы.
-d
и-f
в то же время.pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
, см. Здесь: stackoverflow.com/questions/27882070/…создать резервную копию
-F c - это пользовательский формат (сжатый, и может работать параллельно с -j N) -b - включает большие двоичные объекты, -v - подробный, -f - имя файла резервной копии.
восстановить из резервной копии
важно установить -h localhost - параметр
источник
Вам может потребоваться войти в систему
postgres
, чтобы иметь полные права на базы данных.pg_dump / pg_restore
Переключатель
-F
указать формат файла резервной копии:c
будет использовать собственный формат PostgreSQL, который сжат и приводит к наименьшему размеру файла резервной копииd
для каталога, где каждый файл представляет собой одну таблицуt
для архива TAR (больше, чем пользовательский формат)-h
/--host
Указывает имя хоста компьютера, на котором работает сервер-W
/--password
Принудительноpg_dump
запрашивать пароль перед подключением к базе данныхвосстановление резервной копии:
Параметр
-C
должен создать базу данных перед импортом данных. Если это не работает, вы всегда можете создать базу данных, например. с командой (от имени пользователяpostgres
или другой учетной записи, имеющей права на создание баз данных)createdb db_name -O owner
pg_dump / PSQL
В случае, если вы не указали аргумент по
-F
умолчанию, был использован простой текстовый формат SQL (или с-F p
). Тогда вы не можете использоватьpg_restore
. Вы можете импортировать данные сpsql
.резервное копирование:
восстановить:
источник
postgres
имеет) установлен пароль,-W
следует использовать опцию. Например, в Ubuntu без каких-su postgres
либо действий с терминала$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
это команда, которая работала для меня, чтобы восстановить мою резервную копию на моем локальном хосте. Обратите внимание, что-h
опция необходима.-W
опция никогда не бывает существенной.pg_dump
автоматически запросит пароль, если сервер требует аутентификацию по паролю. Также вы можете использоватьPGPASSWORD
переменную env, если вы используете простые текстовые пароли.-h
необходим, если значение по умолчаниюPGHOST
не применимо. Эти параметры являются общими для многих утилит PostgreSQL, поэтому не обязательно отвечать на этот вопрос (это сильно зависит от вашей настройки).pg_dump/psql
- работа для меня. но 1-я частьpg_dump/pg_restore
не работает для меня на восстановление. Спасибо.-Fc
POSTGRESQL 9.1.12
DUMP:
введите пароль пользователя и нажмите ввод.
ВОССТАНОВИТЬ:
введите пароль пользователя и нажмите ввод.
источник
Ниже моя версия,
pg_dump
которую я использую для восстановления базы данных:или используйте
psql
:где
-h
хост,-p
порт,-u
логин,-d
имя базы данныхисточник
my_new_database
должен уже существовать при использованииpsql
, не?Резервное копирование и восстановление с помощью GZIP
резервное копирование
восстановить
https://www.postgresql.org/docs/9.1/static/backup-dump.html
источник
gunzip -c mydb.pgsql.gz | sudo -u postgres psql
Чтобы получить разрешения для работы с базой данных. Также обратите внимание на--clean
флаг при сбросе, который будет стирать все существующие данные, может пригодиться.источник
Это сработало для меня:
источник
--no-owner
действительно помог мне.1. Откройте терминал.
2. Сделайте резервную копию вашей базы данных с помощью следующей команды
ваш postgres bin - /opt/PostgreSQL/9.1/bin/
ваш исходный сервер базы данных - 192.168.1.111
расположение и имя файла резервной копии - /home/dinesh/db/mydb.backup
ваше имя базы данных источника - mydatabase
/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --username "postgres" --no-пароль - отформатировать пользовательские --blobs --file "/ home / dinesh / db /mydb.backup "" моя база данных "
3. восстановить файл mydb.backup в место назначения.
ваш целевой сервер - localhost
имя вашей целевой базы данных - mydatabase
создать базу данных для восстановления резервной копии.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"
восстановить резервную копию.
/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/ home / dinesh / db / mydb. резервное копирование"
источник
Если вы создаете резервную копию с помощью pg_dump, вы можете легко восстановить ее следующим образом:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
источник
1) Откройте терминал PSQL.
2) Разархивируйте / распакуйте файл дампа.
3) Создать пустую базу данных.
4) используйте следующую команду для восстановления файла .dump
источник
попробуй это:
Восстановить psql БД из .sql файла
источник
Как сказано ниже, вы можете использовать команду psql для восстановления файла дампа:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
если вам нужно установить имя пользователя, просто добавьте имя пользователя после команды, например:
источник
пытаться:
источник
Восстановление файла резервной копии postgres зависит от того, как вы взяли резервную копию.
Если вы использовали pg_dump с -F c или -F d, вам нужно использовать pg_restore, иначе вы можете просто использовать
9 способов резервного копирования и восстановления баз данных postgres
источник
Попробуйте посмотреть, могут ли вам помочь следующие команды:
источник
Извините за некропост, но эти решения у меня не сработали. Я на postgres 10. В Linux:
service postgresql-10 restart
Перейдите в каталог, в котором находился мой backup.sql, и выполните:
psql postgres -d database_name -1 -f backup.sql
-database_name - это имя моей базы данных
-backup.sql - это имя моего резервного файла .sql.
источник
У меня были проблемы с аутентификацией при запуске pg_dump, поэтому я переместил свой файл дампа
во временный каталог, а затем побежал
Если у вас большой дамп базы данных, вы можете просто создать другой каталог, к которому ваш текущий пользователь и пользователь postgres могут получить доступ и поместить в него файл дампа базы данных.
источник
Если у вас есть резервный файл SQL, вы можете легко восстановить его. Просто следуйте инструкциям, приведенным ниже
Введите пароль для вашего пользователя postgres, если это необходимо, и позвольте Postgres выполнять свою работу. Затем вы можете проверить процесс восстановления.
источник
Я не видел здесь упоминаний о расширении файла дампа (* .dump).
Это решение работало для меня:
Я получил файл дампа и должен был восстановить его.
Сначала я попытался сделать это с
pg_restore
и получил:Я сделал это с
psql
и работал хорошо:источник
Если вы хотите сделать резервную копию ваших данных или восстановить данные из резервной копии, вы можете выполнить следующие команды:
Чтобы создать резервную копию ваших данных, перейдите в каталог postgres \ bin \, например,
C:\programfiles\postgres\10\bin\
и введите следующую команду:Чтобы восстановить данные из резервной копии, перейдите в каталог postgres \ bin \
C:\programfiles\postgres\10\bin\
и введите следующую команду:Пожалуйста, убедитесь, что файл резервной копии существует.
источник
Смотрите ниже пример его работы
C: / Program Files / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 - имя пользователя "postgres" --dbname "newDatabase" --no-пароль --verbose
" C: \ Users \ Yogesh \ Downloads \ new Download \ DB.backup "
источник