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