我很难将数据库还原到AWS RDS Postgresql实例。上下文是,我正在从一个RDS实例备份并还原到另一个RDS保险。它们都具有相同版本的Postgresql 9.6.5。
我能够使用以下命令进行转储:
./ pg_dump.exe -U dbuser -W -h prod-pgsql-rds.3ft5coqxjdnq.eu-west-2.rds.amazonaws.com -d devdb> c:\ tmp \ backup.sql < / strong>
然后从生成的.sql文件中,尝试使用以下命令还原到另一个也在使用Postgresql 9.6.5的RDS实例:
./ pg_restore.exe -U dbuser -d testdevdb -h dev-pgsql-rds.cym8coqx52lq.eu-west-2.rds.amazonaws.com“ c:\ tmp \ backup.sql”
*我还尝试了上述还原命令中的-f开关,而不是文件名前后的“”引号
但是当我尝试将其还原到新创建的数据库时,出现以下错误:
pg_restore:[存档]输入文件似乎不是有效的存档
有人可以帮忙吗?仅供参考,我正在通过Windows PowerShell使用PGAdmin 4。由于数据敏感性,我不得不在上面的字符串中编辑一些值。
答案 0 :(得分:1)
pg_restore
仅用于pg_dump
可以输出的其他非纯文本输出格式。对于.sql转储,您只需使用psql。参见docs on restoring from backups。
在Unix环境中,您会做psql [yourflags] < /tmp/backup.sql
,但是我不熟悉powershell,也不知道它是否支持<
进行输入重定向。希望它存在,或者您知道等效的PowerShell语法。
答案 1 :(得分:0)
所以我无法使psql或pg_restore正常工作,因此选择通过PGAmdin中的SQL查询工具将.SQL文件导入。通过一些错误,因此必须对.SQL文件进行一些更改,然后执行以下操作: