Postgresql 如何将普通SQL文件转换为压缩的pgdump文件?

Postgresql 如何将普通SQL文件转换为压缩的pgdump文件?,postgresql,pg-dump,Postgresql,Pg Dump,我有一个普通的SQL文件,它很大>70GB,需要通过慢速连接将其发送到服务器。有没有办法将其转换为二进制pgdump文件而不在本地恢复整个数据库 基本上,这个问题是相反的:您应该压缩它以进行传输,但不需要使用postgres压缩。您可以为此使用rsync,例如: rsync -avz dump.sql user@server:/path/dump.sql 将通过压缩传输转储。要减小可能使用的大小,请执行以下操作: rsync -avz --compress-level=9 dump.sql u

我有一个普通的SQL文件,它很大>70GB,需要通过慢速连接将其发送到服务器。有没有办法将其转换为二进制pgdump文件而不在本地恢复整个数据库


基本上,这个问题是相反的:

您应该压缩它以进行传输,但不需要使用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 

正如Vinícius Gobbo A.de Oliveira在评论中指出的那样,如果不导入和重新导出转储文件,这是不可能的。

这是不可能的,但PostgreSQL在压缩可用时使用Zlib压缩数据,这意味着使用gzip压缩SQL文件可以获得类似的结果,或者使用更强大的格式(如7z.Upvote)获得更好的结果。遗憾的是,我必须在没有管理权限的windows客户端上工作,所以rsync是不可能的。@Mohl:听到这个消息我很难过。但是您可以使用显式压缩而不使用rsync。