база данных 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) см. Также поддерживаемые переменные среды.