Восстановить дамп на удаленной машине

У меня есть собственная машина с файлом dmp postgres, который я хочу восстановить на удаленной виртуальной машине (например, IP-адрес 192.168.0.190 и порт postgres 5432) в моей сети. Можно ли восстановить этот дамп с помощью pg_restore без копирования дампа на удаленную машину? Потому что размер дампа около 12Гб, а место на диске на виртуальной машине 20Гб. Спасибо


person Danila Zharenkov    schedule 15.10.2014    source источник


Ответы (5)


Вы можете запустить восстановление по сети, не копируя дамп на удаленный хост.

Просто вызовите pg_restore с -h <hostname> и -p <port> (и, возможно, -U <username> для аутентификации как другого пользователя) на хосте, на котором вы получили файл дампа, например:

pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump

Ссылки:

person nif    schedule 15.10.2014
comment
Да, ты прав. Пробую вот так pg_restore -i -h 192.168.1.190 -p 5432 -U postgres -d MFC_sara -v /home/develop/BD_Dumps/Saratov.dmp ; Но после этой команды необходимо ввести пароль для целевой базы данных. И я этого не знаю, на виртуальной машине я просто создаю базу данных, например, createdb -T template0 MFC_sara - person Danila Zharenkov; 15.10.2014
comment
Если вы хотите получить доступ с удаленного компьютера, вам потребуется аутентификация по паролю (или любая другая нелокальная аутентификация). Создайте пользователя и назначьте привилегии для базы данных. Или, если это не производственная среда, создайте суперпользователя с паролем: createuser -P -s someusername - person nif; 15.10.2014

В качестве альтернативы вы можете использовать psql:

psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump

person plomovtsev    schedule 05.07.2017

Пример удаленного экземпляра RDS на AWS

psql -h  mydb.dsdreetr34.eu-west-1.rds.amazonaws.com -p 5432 -d mydbname -U mydbuser -W -f  mydatabase-dump.sql

  -f, --file=FILENAME      execute commands from file, then exit
  -W, --password           force password prompt (should happen automatically)
person Dr Manhattan    schedule 17.10.2017
comment
Это сработало! но вставляя 10 строк за раз, мы можем увеличить размер - person Rohit Parte; 10.12.2020

Вы можете передать параметр пароля в своем скрипте перед "pg_restore", используя PGPASSWORD="your_database_password"

person Van    schedule 06.01.2016

Я запускаю это и работает со мной:

    scp backup.dump user@remotemachine:~

    ssh user@remotemachine "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"

Вы можете написать скрипт для автоматизации этого.

person Franco S    schedule 29.01.2018