我有自己的机器使用postgres dmp文件,我想在我的网络中恢复远程虚拟机(例如ip为192.168.0.190,postgres端口为5432)。是否可以使用pg_restore恢复此转储而无需将转储复制到远程计算机?因为转储大小约为12GB,虚拟机上的磁盘空间为20GB。 感谢
答案 0 :(得分:21)
您可以通过网络运行还原,而无需将转储复制到远程主机。
只需在您获得转储文件的主机上调用pg_restore
-h <hostname>
和-p <port>
(可能-U <username>
以不同用户身份验证),例如:
pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump
<强>参考文献:强>
答案 1 :(得分:5)
或者,您可以使用psql:
psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump
答案 2 :(得分:1)
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)
答案 3 :(得分:0)
您可以在&#34; pg_restore&#34;之前在脚本中传递密码参数。使用PGPASSWORD =&#34; your_database_password&#34;
答案 4 :(得分:0)
我运行这个并且对我有用:
scp backup.dump user@remotemachine:~
ssh user@remotemachine "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"
您可以编写脚本来自动执行此操作。