pg_restore:无法恢复我的数据库

6
我正在尝试恢复我的PostgreSQL数据库,但是我得到的信息是什么意思,为什么我没有看到它还原表格/数据?

C:\ Program Files \ PostgreSQL \ 9.4 \ bin \ pg_restore.exe --host 123-97.compute-1.amazonaws.com --port 5432 --username“username” --dbname“mydb”--no-password --section pre-data --section data --section post-data --schema public --verbose“C:\ db \ employee.backup”

pg_restore:连接到用于还原的数据库pg_restore:暗示仅数据恢复

进程返回退出代码0。

我使用的是Windows 8.1。

你的备份文件里有什么?你确定它包含有用的内容吗? - tadman
我在本地机器上备份了一个大小为100MB的数据库,这是我用于应用程序的数据库...我对PostgreSQL数据库或pgAdmin并不了解,只是在pg_restore中卡住了。 - Nick Kahn
1
您正在使用所有的 --section 选项,这与根本没有指定任何选项相同,但是,您收到的警告(“暗示仅数据恢复”)指向某种问题,因此最好从命令中删除所有的 --section <type> 选项。另外,您只请求还原公共模式,这是否是您真正想要做的?请注意,如果您的数据库中的公共模式为空,则还原将不起作用。 - Ezequiel Tolnay
以下是数据仅行为如何确定的方法:(1)如果指定了“--data-only”或(2)您的转储文件中缺少模式或(3)您请求不还原模式。 https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_backup_archiver.c;h=87113cfd4421215c8ecf3b49220a2aa826513c0c;hb=e4c4e6258c747d440e161f387d2eff84a835ca08#l429 - Winny
3个回答

8

在使用不同的名称还原模式备份时,我遇到了这个错误。当我使用相同的名称还原模式时,它可以完美运行,然后稍后我将其重命名。

另一种选择是,从一个经过小心限制的pg_dump转储中进行pg_restore,并在使用pg_restore时避免使用--schema(甚至可能是--table)选项。


0

当我尝试将 psql 12 备份还原到 psql 12 数据库时,我遇到了相同的问题,但是使用更新的 Ubuntu 版本(备份在 Ubuntu 18 上,还原在 Ubuntu 20 上,两者都是 psql 12)。 当我将 Ubuntu 从 20 降级到 18 时,它就正常还原了,不确定为什么 Ubuntu 版本会出现问题。我的建议是确保备份和还原的环境完全相同。


0
为了备份目的,重命名您的旧模式,例如schema_old,并创建一个同名的新模式,然后尝试再次恢复它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接