在远程计算机上恢复转储



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

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

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

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

参考文献:

  • pg_restore文档

或者,您可以使用psql:

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

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

我运行这个并为我工作:

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

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

相关内容

  • 没有找到相关文章

最新更新