Восстановить файл резервной копии postgres с помощью командной строки?



Я новичок в postgresql, и локально, я использую pgadmin3. На удаленном сервере, однако у меня нет такой роскоши.



Я уже создал резервную копию базы данных и скопировать его, но, есть ли способ восстановить резервную копию из командной строки? Я вижу только вещи, связанные с GUI или pg_dumps, поэтому, если кто-то может сказать мне, как это сделать, это было бы потрясающе!

1168   15  

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 -Fc 

switch -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 owner

pg_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.gz

resore

gunzip -c mydb.pgsql.gz | psql dbname -U user

https://www.postgresql.org/docs/9.1/static/backup-dump.html

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 вы можете легко восстановить его следующим образом:

  1. открыть окно командной строки
  2. перейдите в папку Postgres bin. Например: cd "C:\ProgramFiles\PostgreSQL.5\bin"
  3. введите команду для восстановления базы данных. For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
  4. введите пароль для вашего пользователя postgres
  5. Проверьте процесс восстановления

попытаться увидеть, если следующие команды могут помочь вам:

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.backup

2 чтобы восстановить данные из резервной копии, перейдите в каталог 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

    Ничего не найдено.