PostgreSQL数据库备份恢复

3
我正尝试启动一个网站,并拥有.asp源文件和PostgreSQL数据库的备份文件。但是在尝试恢复Postgres备份时,我一直收到错误提示:“进程返回退出代码0”。我已经通过pgadmin GUI创建了一个新的数据库并添加了表格,但当我右键单击空表并选择还原时会出现错误。请问有哪位具有Postgres经验的人可以提供帮助或向我提供特定文档的方向?

备份是如何创建的?关键点是:1.它只是数据备份吗?如果您已经创建了表格,则期望它是,因此我们要确保这一点。2.备份是否还尝试创建数据库?同样,如果您已经创建了数据库,则期望它不会,但只是检查一下。3.备份是否压缩,还是SQL转储?这将改变您恢复它和找出问题1和2答案的选项。 - Scott S
我对Postgres还不熟悉,所以不确定。我最好的猜测是它是一个压缩备份(仅基于它是.backup而不是.sql的事实)。至于它是否会创建表格,我唯一看到允许从“备份”中进行“恢复”的地方是在空数据库中实际表格上右键单击。 - Vinnie James
如何在不将备份还原到手动创建的数据库/表中的情况下恢复备份? - Vinnie James
4
退出代码0表示成功。如果有任何错误,需要先查找前置错误。要识别文件,请打开该文件的副本或在文本编辑器中以只读方式打开文件;首几个字节是否是字符“PGDMP”? 如果是,则它是pg_dump -Fc自定义格式的转储文件,应使用pg_restore来还原。这就是PgAdmin-III将自动完成的操作,并且听起来这正是您正在使用的操作,所以您应该没问题。通常,您会将整个数据库还原到一个空数据库中,而不是手动创建表然后尝试还原。 - Craig Ringer
是的,这是一个PGDMP "PGDMPq XXXXXXXXXXXXXXXXXXXXENCODINGENCODINGSET client_encoding = 'UTF8';"。我能否在PgAdmin的GUI中恢复它?如果可以,怎么做:因为从我看到的情况来看,恢复选项不可用,除非我手动创建表并右键单击它?还是我需要在pg_restore的命令行中完成这个操作? - Vinnie James
1个回答

3
使用客户端应用程序pg_restore从由pg_dump创建的归档文件中恢复,该归档文件采用非纯文本格式之一。

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