中間ファイルを作成する必要はありません。あなたができる
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
または
pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname
psqlを使用する またはpg_dump リモートホストに接続します。
データベースが大きい場合や接続が遅い場合は、ファイルのダンプと圧縮されたファイルの転送が高速になる可能性があります。
Kornelが言ったように、中間ファイルにダンプする必要はないので、圧縮して作業したい場合は、圧縮トンネルを使用できます
pg_dump -C dbname | bzip2 | ssh example@sqldat.com "bunzip2 | psql dbname"
または
pg_dump -C dbname | ssh -C example@sqldat.com "psql dbname"
ただし、このソリューションでは、両端でセッションを取得する必要もあります。
注: pg_dump バックアップとpsql用です 復元用です。したがって、この回答の最初のコマンドはローカルからリモートにコピーすることであり、2番目のコマンドはリモートからローカルにコピーすることです 。詳細->https://www.postgresql.org/docs/9.6/app-pgdump.html