Восстановить файл резервной копии postgres с помощью командной строки?
Я новичок в postgresql, и локально, я использую pgadmin3. На удаленном сервере, однако у меня нет такой роскоши.
Я уже создал резервную копию базы данных и скопировать его, но, есть ли способ восстановить резервную копию из командной строки? Я вижу только вещи, связанные с GUI или pg_dumps, поэтому, если кто-то может сказать мне, как это сделать, это было бы потрясающе!
15 ответов:
есть два инструмента, чтобы посмотреть, в зависимости от того, как вы создали файл дампа.
ваш первый источник ссылки должен быть man page
pg_dump(1)как это то, что создает сам дамп. Он говорит:дампы могут быть выведены в скрипт или форматы архивных файлов. Дампы скриптов являются текстовые файлы, содержащие SQL команды, необходимые для восстановления база данных в том состоянии, в котором она была в то время он был спасен. К восстановить от такого скрипт, скормите его psql (1). Файлы скриптов могут быть использованы для восстановления базы данных даже на других машинах и других архитектуры; с некоторыми изменениями даже на других продуктах баз данных SQL.
альтернативные форматы архивных файлов должен использоваться с pg_restore (1) для перестроить базу данных. Они позволяют pg_restore, чтобы быть избирательным о том, что восстанавливается, или даже на порядок элементы перед восстановлением. Этот форматы архивных файлов предназначены для будьте переносимы в разных архитектурах.
так зависит от того, как он был сброшен. Вы, вероятно, можете понять это, используя отличный
file(1)command - если он упоминает текст ASCII и / или SQL, он должен быть восстановлен с помощьюpsqlв противном случае вы должны, вероятно, использоватьpg_restoreвосстановление довольно легко:
psql -U <username> -d <dbname> -1 -f <filename>.sqlили
pg_restore -U <username> -d <dbname> -1 <filename>.dumpпроверьте их соответствующие manpages-есть довольно много вариантов, которые влияют на то, как работает восстановление. Вы возможно, вам придется очистить ваши "живые" базы данных или воссоздать их из template0 (как указано в комментарии) перед восстановлением, в зависимости от того, как были созданы дампы.
создать резервную копию
pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f "/usr/local/backup/10.70.0.61.backup" old_dbвосстановить из резервной копии
pg_restore -i -h localhost -p 5432 -U postgres -d old_db -v "/usr/local/backup/10.70.0.61.backup"важно -ч на localhost опции
возможно, Вам потребуется войти в систему как
postgresдля того чтобы иметь полные привилегии на базы данных.su - postgres psql -l # will list all databases on Postgres clusterпомощью pg_dump/pg_restore
pg_dump -U username -f backup.dump database_name -Fcswitch
-Fуказать формат файла резервной копии:
cбудет использовать пользовательский формат PostgreSQL, который сжимается и приводит к наименьшему размеру файла резервной копииdдля каталога, где каждый файл является одной таблицейtдля архива TAR (больше, чем пользовательский формат)-h/--hostуказывает имя хоста машины, на которой работает сервер-W/--passwordсилуpg_dumpзапрос пароля перед подключением к базе данныхвосстановить резервную копию:
pg_restore -d database_name -U username -C backup.dumpпараметр
-Cсоздать базу данных перед импортом данных. Если это не работает, вы всегда можете создать базу данных, например. с помощью команды (как пользовательpostgresили иной счет, имеет права на создание баз данных)createdb db_name -O ownerpg_dump / psql
в случае, если вы не указали аргумент
-Fпо умолчанию использовался обычный текстовый формат SQL (или с-F p). Тогда вы не можете использоватьpg_restore. Вы можете импортировать данные с помощьюpsql.резервное копирование:
pg_dump -U username -f backup.sql database_nameвосстановить:
psql -d database_name -f backup.sql
POSTGRESQL 9.1.12
свалка:
pg_dump -U user db_name > archive_name.sqlвведите пароль пользователя и нажмите enter.
восстановить:
psql -U user db_name < /directory/archive.sqlвведите пароль пользователя и нажмите enter.
ниже моя версия
pg_dumpкоторый я использую для восстановления базы данных:pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backupили использовать
psql:psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backupздесь
-hхоста-pпорт-uимя пользователя для входа,-dимя базы данных
резервное копирование и восстановление с помощью GZIP
для базы данных большего размера это очень хорошо
резервное копирование
pg_dump -U user -d mydb | gzip > mydb.pgsql.gzresore
gunzip -c mydb.pgsql.gz | psql dbname -U user
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql} Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
1.откройте терминал.
2.резервное копирование базы данных с помощью следующей команды
ваш postgres bin - / opt / PostgreSQL/9.1/bin/
ваш исходный сервер баз данных-192.168.1.111
расположение и имя файла резервной копии - / home / dinesh/db / mydb.резервное копирование
ваше исходное имя БД-mydatabase
/опт/в PostgreSQL/9.1/bin/, и помощью pg_dump --хост 192.168.1.111' --порт 5432 --имя пользователя "и Postgres" --нет-пароль --формат --капли --файл "/домашний/Динеш/дБ/базы данных mydb.резервное копирование ""mydatabase"
3.восстановление базы данных mydb.резервное копирование файла в пункт назначения.
ваш конечный сервер-localhost
имя целевой базы данных-mydatabase
создать базу данных для восстановления резервной копии.
/opt / PostgreSQL/9.1 / bin / psql-h 'localhost' - p 5432-U postgres-c " создать базу данных mydatabase"
восстановить резервную копию.
/опт/в PostgreSQL/9.1/bin и/pg_restore --хоста 'localhost' а --порт 5432 --имя пользователя "сервер" --имя базы данных "базы данных mydatabase" ... нет-пароль-чистые "/главная/Динеш/БД/базы данных mydb.резервное копирование"
Как указано ниже Ссылка, вы можете использовать команду psql для восстановления файла дампа:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infileЕсли вам нужно установить имя пользователя, просто добавьте имя пользователя после команды, например:
psql dbname < infile username
Если вы создаете резервную копию с помощью pg_dump вы можете легко восстановить его следующим образом:
- открыть окно командной строки
- перейдите в папку Postgres bin. Например:
cd "C:\ProgramFiles\PostgreSQL.5\bin"- введите команду для восстановления базы данных.
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql- введите пароль для вашего пользователя postgres
- Проверьте процесс восстановления
попытаться увидеть, если следующие команды могут помочь вам:
sudo su - yourdbuser psql \i yourbackupfile
восстановление файла резервной копии postgres зависит от того, как вы взяли резервную копию в первую очередь.
Если вы использовали pg_dump с -F c или -F d вам нужно использовать pg_restore в противном случае вы можете просто использовать
psql-h localhost-p 5432-U postgres
9 способов резервного копирования и восстановления баз данных postgres
у меня были проблемы с аутентификацией при запуске pg_dump, поэтому я переместил файл дампа
mv database_dump /tmpв каталог temp, а затем побежал
su -u postgres cd /tmp pg_restore database_dumpЕсли у вас есть большой дамп базы данных, вы можете просто создать другой каталог, где ваш текущий пользователь и пользователь postgres могут получить доступ и поместить в него файл дампа базы данных.
если вы хотите сделать резервную копию данных или восстановить данные из резервной копии, можно выполнить следующие команды:
1 чтобы создать резервную копию ваших данных, перейдите в каталог postgres \bin\ like
C:\programfiles\postgres\bin\и затем введите следующую команду -pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup2 чтобы восстановить данные из резервной копии, перейдите в каталог postgres \bin\ like
C:\programfiles\postgres\bin\а затем введите ниже команду -C:\programFiles\postgres\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backupпожалуйста, убедитесь, что файл резервной копии существует.
см. ниже пример его работы
C:/Program файлы / PostgreSQL/9.4 / bin\pg_restore.ехе --хостом localhost --порт 5432 --имя пользователя "сервер" --имя_бд "newDatabase" ... нет-пароль параметром --verbose
"C:\Users\Yogesh\Downloads\new скачать\DB.резервное копирование"
Comments