postgresql PSQL还原过程失败,提示“pg_restore:error:could not execute query:no connection to the server”(pg_restore:error:could not execute query:no connection to the server)

1dkrff03  于 5个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(123)

我有一个大约450 MB的数据库备份。我想用2vCPU和1 GB RAM将数据库恢复到Amazon Lightsail托管数据库。我还启用了数据迁移导入模式,以便在导入数据时不会中断(推荐方式)。
数据库恢复过程成功启动,它需要大约3小时,但突然这个过程失败,抛出这个错误
pg_restore:错误:无法执行查询:没有连接到服务器
我已经再次启动该进程,3小时后再次失败,抛出相同的错误。我的互联网是稳定的,我的数据库是活跃的。我无法弄清楚这可能是什么原因。

wnvonmuf

wnvonmuf1#

我认为RDS不支持pgagent。如果pgagent是你应用的核心,你需要找到另一个解决方案,比如不使用RDS,或者改变你的应用不使用pgagent。
但通常pg_restore会创建所有需要的扩展作为它做的第一件事之一,所以我不明白他们怎么花了3个小时才注意到这一点,也不明白为什么这个问题会出现在你得到的后续错误中。我没有得到“没有连接到服务器错误”。我得到的取决于pg_restore的选项。所以这些问题的介绍可能是lightsail/RDS特定的。
如果pgagent是应用的外围设备,那么如果您仍然可以访问原始服务器,您可以删除该扩展并重新转储。如果没有,您可以将转储恢复到PostgreSQL的社区版本,删除扩展并重新转储。问题是这可能只是冰山一角,您可能会发现许多其他兼容性问题,一次只做一个会很糟糕
如果你想预览正在发生的事情,也许你可以这样做:

pg_restore dmp.dmp -f - | fgrep -in 'create extension'

字符串
查看恢复将尝试进行的所有扩展以及在会话的早期尝试进行这些扩展。

相关问题