база данных postgres дампа pg с удаленного сервера

Я пытаюсь pg_dump базы данных SQL на удаленном сервере в нашей DMZ. Есть 2 проблемы.

1) на удаленном сервере осталось не так много места, поэтому обычная команда запускается для локального резервного копирования базы данных pg_dump -C database > sqldatabase.sql.bak не будет работать из-за нехватки места.

2) я также не могу запустить другую версию команды pg_dump для сброса базы данных с удаленного сервера на локальный сервер с помощью:

pg_dump -C -h remotehost -U remoteuser db_name | psql localhost -U localuser db_name

поскольку сервер находится в нашей DMZ и порт 5432 заблокирован. Что? Я ищу, можно ли pg_dump базу данных и немедленно сохранить ее (ssh или какую-либо другую форму) в качестве файла на удаленный сервер. Я пытался сказать:pg_dump -C testdb | ssh admin@ourserver.com | > /home/admin/testdb.sql.bak

кто-нибудь знает, возможно ли то, чего я пытаюсь достичь?

3 ответов


вы можете подключиться с ssh к удаленному серверу, сделать с подключением вызова pg_dump и отправить вывод обратно в stdout локальной машины.

ssh user@remote_machine "pg_dump -U dbuser -h localhost -C --column-inserts" \
 >> backup_file_on_your_local_machine.sql

Edit: исправлена опечатка.


вы можете попытаться сбросить часть таблицы в файл на вашем локальном компьютере, как это (предположим, ваш локальный компьютер имеет psql установить):

psql -h ${db_host} -p 5432 -U ${db_user} -d ${db_name} \
-c "\copy (SELECT * FROM my_table LIMIT 10000) to 'some_local_file.csv' csv;"

и вы можете импортировать экспортированный csv в другую БД позже, как это:

COPY my_table FROM '/path/to/some_local_file.csv' WITH (FORMAT csv);

было упомянуто одно возможное решение-труба через ssh.

вы также можете заставить сервер БД прослушивать общедоступный адрес inet, добавить запись hostssl для вашей резервной машины в pg_hba.conf, возможно, настройте сертификат клиента для безопасности, а затем просто запустите дамп на клиентской / резервной машине с pg_dump -h dbserver.example.com ...

Это проще для автоматического резервного копирования.

для конфигурации соединения (sslmode) см. Также поддерживаемые переменные среды.