Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 还原远程计算机上的转储_Postgresql_Dump_Remote Server_Pg Restore - Fatal编程技术网

Postgresql 还原远程计算机上的转储

Postgresql 还原远程计算机上的转储,postgresql,dump,remote-server,pg-restore,Postgresql,Dump,Remote Server,Pg Restore,我有自己的带有postgres dmp文件的机器,我想在网络中的远程虚拟机(例如,ip为192.168.0.190,postgres端口为5432)上恢复该文件。是否可以使用pg_restore恢复此转储,而不将转储复制到远程计算机?因为转储的大小约为12GB,而虚拟机上的磁盘空间为20GB。 谢谢您可以通过网络运行恢复,而无需将转储复制到远程主机 只需在获得转储文件的主机上使用-h和-p(可能还有-U)调用pg\U restore,即可进行身份验证,例如: pg_restore -h 192.

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

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

只需在获得转储文件的主机上使用
-h
-p
(可能还有
-U
)调用
pg\U restore
,即可进行身份验证,例如:

pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump
参考文献:


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

或者,您可以使用psql:


psql-h 192.168.0.190-p 5432-d-U-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)

我运行此程序并对我起作用:

    scp backup.dump user@remotemachine:~

    ssh user@remotemachine "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"

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

是的,您是对的。我试着这样做,pgu restore-I-h192.168.1.190-p5432-U postgres-d MFC_sara-v/home/develope/BD_Dumps/Saratov.dmp;但在这个命令之后,需要为目标数据库输入一些密码。我不知道,在虚拟机上,我只是创建了类似createdb-t template0 MFC_sara的数据库。如果您想从远程机器访问,您将需要密码身份验证(或任何其他非本地身份验证)。创建用户并为数据库分配权限。或者,如果这不是生产环境,请使用密码创建一个超级用户:
createuser-P-s someusername
!但是一次插入10行可以增加大小吗