发布
社区首页 >问答首页 >使用pg_restore、psql或pgAdmin4还原postgres db备份时出错

使用pg_restore、psql或pgAdmin4还原postgres db备份时出错
EN

Ask Ubuntu用户
提问于 2023-01-30 16:33:23
回答 1查看 698关注 0票数 0

这是一个低风险,只是一个实践运行时,我迫切需要这样做,并确认pg_dump的工作是满意的。

我试图使用psqlpg_restore将Postgres数据库的副本还原到新数据库。我在Ubuntu 22.04。

作为我通常的用户,rlm,在~上,我可以键入dir并获得来自pg_dumpapgym.sql输出。

所以我输入pg_restore -d testRestore -U postgres apgym.sql并得到:pg_restore: error: input file appears to be a text format dump. Please use psql.

就像好的,我会用psql。我输入它并得到psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: database "rlm" does not exist --我不理解错误消息,但我将作为Postgres用户再试一次。所以我打字

sudo su postgres并成为postgres用户。我在与我的psql -d testRestore -f apgym.sql文件相同的目录中输入apgym.sql,我得到:

代码语言:javascript
代码运行次数:0
复制
could not change directory to "/home/rlm": Permission denied
psql: error: apgym.sql: No such file or directory

我也不能使用pgAdmin从备份中恢复,它说状态在0.02秒内“失败”。

如何恢复已备份的postgres db?我需要能够做到这一点,以防我的数据被破坏,我想回去。请不要提出其他选择:我想这样做。

如果它可以帮助读者或者将来想要创建自己的pg_dump输出的人,我用命令pg_dump -h localhost -U postgres -W apGymPostgres > apgym.sql创建了备份。

EN

回答 1

Ask Ubuntu用户

发布于 2023-01-30 18:45:37

对我来说,解决办法是绕过这个问题。我未能使psql或pg_restore还原我创建的备份。据推测,因为我创建了一个纯文本pg_dump文件,所以需要使用psql。但我不能让psql起作用。

当我发现一个教程说,如果我使用tar转储文件,那么我就可以使用pg_restore。我能够使用pgAdmin创建一个tar转储文件,然后使用pgAdmin进行类似的恢复。

因此,这不是一个解决方案,使一个纯文本pg转储工作,但它绕过它。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1452650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档