ネットワーク内のリモート仮想マシン(ipが192.168.0.190、postgresポートが5432など)で復元したいpostgres dmpファイルを含む自分のマシンがあります。ダンプをリモートマシンにコピーせずにpg_restoreを使用してこのダンプを復元することは可能ですか?ダンプのサイズが約12GBで、仮想マシンのディスク容量が20GBだからです。ありがとう
ダンプをリモートホストにコピーせずに、ネットワーク経由で復元を実行できます。
ダンプファイルを取得したホストで、pg_restore
を-h <hostname>
と-p <port>
を使用して呼び出すだけです(おそらく、別のユーザーとして認証するには-U <username>
を使用します)。
pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump
参照:
または、psqlを使用することもできます。
psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump
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)
PGPASSWORD = "your_database_password"を使用して、「pg_restore」の前にスクリプトでパスワードパラメータを渡すことができます
私はこれを実行して私に働きます:
scp backup.dump user@remotemachine:~
ssh user@remotemachine "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"
これを自動化するスクリプトを作成できます。