还原远程计算机上的转储

时间:2014-10-15 08:40:20

标签: postgresql dump remote-server pg-restore

我有自己的机器使用postgres dmp文件,我想在我的网络中恢复远程虚拟机(例如ip为192.168.0.190,postgres端口为5432)。是否可以使用pg_restore恢复此转储而无需将转储复制到远程计算机?因为转储大小约为12GB,虚拟机上的磁盘空间为20GB。 感谢

5 个答案:

答案 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"

您可以编写脚本来自动执行此操作。