1. ホーム
  2. database

[解決済み] PostgreSQLデータベースの別サーバーへのコピー

2022-03-17 02:29:29

質問

本番用PostgreSQLデータベースを開発用サーバーにコピーしたいと考えています。これを行うための最も迅速で簡単な方法は何でしょうか?

解決方法は?

中間ファイルを作成する必要はありません。以下のようにすればよい。

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番目のコマンドは、リモートからローカルへのコピーです。 . もっと見る -> https://www.postgresql.org/docs/9.6/app-pgdump.html