Копирование дампа БД Postgresql с удаленного сервера на локальный

Я хочу взять дамп БД с удаленного сервера, а затем скопировать этот дамп на свой локальный. Я пробовал пару команд, но не работал.

Наконец, я попробовал команду ниже;

pg_dump  -h 10.10.10.70 -p 5432  -U postgres -d mydb   | gzip > db1.gz

Я успешно беру БД и пытаюсь восстановить из Pgadmin, это дает;

pg_restore: error: input file appears to be a text format dump. Please use psql

Но на данный момент я не могу использовать psql, я должен использовать Pgadmin и не уверен, смогу ли я успешно получить дамп БД на свой локальный компьютер. Я имею в виду, что я не могу проверить с восстановлением.

Как я могу перенести дамп БД с удаленного сервера на свой локальный?

Спасибо!


person yatta    schedule 15.04.2021    source источник


Ответы (1)


Используйте пользовательский формат:

pg_dump -F c -h 10.10.10.70 -p 5432 -U postgres -f mydb.dmp mydb

Это можно восстановить с помощью pg_restore и, следовательно, с помощью pgAdmin.

Вам не нужно использовать pgAdmin. pgAdmin использует pg_restore, и ничто не мешает вам использовать его.

person Laurenz Albe    schedule 15.04.2021
comment
Большое спасибо! Вы сэкономили мои часы! - person yatta; 15.04.2021
comment
Последний вопрос, как я могу автоматизировать команду с паролем? Я попробовал pg_dump -F c -h 10.10.10.70 -p 5432 -U postgres -W MYPASSWORD -f mydb.dmp mydb, но это дает слишком много аргументов. - person yatta; 15.04.2021
comment
Используйте файл пароля. - person Laurenz Albe; 15.04.2021