Postgresql 如何验证pg_dump archive生成的存档是否正常有效?

Postgresql 如何验证pg_dump archive生成的存档是否正常有效?,postgresql,Postgresql,我正在从postgresql中备份/还原数据,以便使用pg_dump.exe和pg_restore.exe 为了恢复备份文件,我必须删除数据库中的实际表,如果转储文件不正常,这可能是“自杀性的工作” 我可以像第一次测试一样使用“7z t mydump.gz”检查转储文件的完整性 但我想知道,因为这个归档文件是原始的PG归档文件,所以PostgreSQL是否包含任何技术来检查这个“.gz”归档文件,我可以在删除实际表之前使用它 如果有,如何进行适当的检查 编辑:这是我转储的实际命令: “C:\Pr

我正在从postgresql中备份/还原数据,以便使用
pg_dump.exe
pg_restore.exe

为了恢复备份文件,我必须删除数据库中的实际表,如果转储文件不正常,这可能是“自杀性的工作”

我可以像第一次测试一样使用“7z t mydump.gz”检查转储文件的完整性

但我想知道,因为这个归档文件是原始的PG归档文件,所以PostgreSQL是否包含任何技术来检查这个“.gz”归档文件,我可以在删除实际表之前使用它

如果有,如何进行适当的检查

编辑:这是我转储的实际命令:

“C:\Program Files(x86)\PostgreSQL\9.1\bin\pg_dump.exe”--主机本地主机--端口5432--用户名“postgres”--无密码--详细-F t--文件“C:\Users\User 1\Desktop\mydatabase.gz”“mydatabase”


您似乎正在尝试验证刚刚进行的PostgreSQL转储的有效性和正确性

您的主要误解是,您不必将转储还原到从中创建转储的同一数据库中。您可以还原到同一群集上的另一个数据库,或者为了避免额外的偏执,可以还原到另一个群集(服务器)上的数据库。验证转储是否已正确还原,以及数据是否与预期一致

如果有额外的妄想症,请停止PostgreSQL server并复制数据目录中的文件。这样,您也可以进行文件级备份。请注意,PostgreSQL数据目录的文件级副本只能由同一平台上使用相同选项构建的相同主版本(8.1/8.2/…)的PostgreSQL读取-因此,如果datadir在Windows x64上是从9.2.x读取的,则只能由另一个安装了9.2.x的Windows x64主机读取

如果您担心原始数据库,那么您可能没有备份。这是一个关键问题。您需要立即阅读,并制定一个良好的自动备份方案。看一看

问题编辑后更新

-ft
是一个奇怪的选择;普通SQL转储或
-fc
通常更有意义

您生成的文件不是
.gz
(gzip压缩)文件,无论如何,它是
.tar
存档文件,不是压缩文件。它可以被提取到一个包含SQL文件的目录中


要测试它,请使用
pg_restore
将它还原到使用
createdb
CREATE database
命令创建的新空数据库。

实际上,至少在测试中,您可以重命名数据库,而不是清空它。嗨,Craig。我只将表转储/还原到现有的空数据库。现在你看到我的命令行了。