Как преобразовать обычный файл SQL в сжатый файл pgdump?
У меня обычный SQL-файл довольно большого размера (>70 ГБ), и мне нужно отправить его на сервер через медленное соединение. Есть ли способ преобразовать его в двоичный файл pgdump без локального восстановления всей БД?
По сути, этот вопрос полностью изменился: как мне преобразовать двоичный файл pgdump (сжатый) в обычный файл SQL?
2 ответа
Как отметил в комментариях Виниций Гоббо А. де Оливейра, это невозможно без импорта и реэкспорта дампа.
Вы должны сжать его для передачи, но вам не нужно использовать сжатие postgres. Вы могли бы использовать rsync
для этого, например:
rsync -avz dump.sql user@server:/path/dump.sql
Перенесем дамп со сжатием. Чтобы уменьшить размер, вы можете использовать:
rsync -avz --compress-level=9 dump.sql user@server:/path/dump.sql
Вы также можете сжать дамп с помощью программы сжатия (например, gzip
, bzip
), передайте его и прочитайте без распаковки.
gunzip dump.sql.gz | pg_restore -Upostgres