23

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

4

5 回答 5

39

您可以通过网络运行还原,而无需将转储复制到远程主机。

pg_restore只需在您获得转储文件的主机上调用-h <hostname>and -p <port>(并且可能-U <username>以不同的用户身份进行身份验证),例如:

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

参考:

于 2014-10-15T08:49:18.390 回答
14

或者,您可以使用 psql:

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

于 2017-07-05T13:00:35.740 回答
5

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)
于 2017-10-17T10:34:48.953 回答
1

您可以在“pg_restore”之前使用 PGPASSWORD="your_database_password" 在脚本中传递密码参数

于 2016-01-06T18:27:53.867 回答
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"

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

于 2018-01-29T17:09:31.077 回答