web-dev-qa-db-ja.com

リモートマシンでダンプを復元する

ネットワーク内のリモート仮想マシン(ipが192.168.0.190、postgresポートが5432など)で復元したいpostgres dmpファイルを含む自分のマシンがあります。ダンプをリモートマシンにコピーせずにpg_restoreを使用してこのダンプを復元することは可能ですか?ダンプのサイズが約12GBで、仮想マシンのディスク容量が20GBだからです。ありがとう

16

ダンプをリモートホストにコピーせずに、ネットワーク経由で復元を実行できます。

ダンプファイルを取得したホストで、pg_restore-h <hostname>-p <port>を使用して呼び出すだけです(おそらく、別のユーザーとして認証するには-U <username>を使用します)。

pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump

参照:

27
nif

または、psqlを使用することもできます。

psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump

7
mopdobopot

AWSでのリモートRDSインスタンスの例

psql -h  mydb.dsdreetr34.eu-west-1.rds.amazonaws.com -p 5432 -d mydbname -U mydbuser -W -f  mydatabase-dump.sql

  -f, --file=FILENAME      execute commands from file, then exit
  -W, --password           force password Prompt (should happen automatically)
2
Dr Manhattan

PGPASSWORD = "your_database_password"を使用して、「pg_restore」の前にスクリプトでパスワードパラメータを渡すことができます

1
Van

私はこれを実行して私に働きます:

    scp backup.dump user@remotemachine:~

    ssh user@remotemachine "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"

これを自動化するスクリプトを作成できます。

0
Franco S