運用中の PostgreSQL データベースを開発サーバーにコピーしたいと考えています。これを行う最も迅速で簡単な方法は何ですか?
ベストアンサー1
中間ファイルを作成する必要はありません。
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 remoteuser@remotehost "bunzip2 | psql dbname"
または
pg_dump -C dbname | ssh -C remoteuser@remotehost "psql dbname"
しかし、このソリューションでは、両端でセッションを取得する必要もあります。
注: pg_dump
はバックアップ用、psql
は復元用です。したがって、この回答の最初のコマンドはローカルからリモートへのコピーであり、2 番目のコマンドはリモートからローカルへのコピーです。詳細 ->参考: postgresql.org/docs/9.6/app-pgdump.html