postgresql – 如何验证pg_dump存档生成的存档是否正常?

我正在使用 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” –host localhost –port 5432 –username “postgres” –no-password –verbose -F t –file “C:\Users\User 1\Desktop\mydatabase.gz” “mydatabase”

解决方法

您似乎正在尝试验证刚刚创建的Postgresql转储的有效性和正确性.

您的主要误解是您不必将转储还原到您创建它的同一数据库中.您可以还原到同一群集上的另一个数据库,或者另一个群集(服务器)上的数据库的额外偏执.验证转储是否已正确恢复,并确保数据符合您的预期.

对于额外的偏执,停止Postgresql服务器并复制数据目录中的文件.这样你就有了文件级备份.请注意,Postgresql数据目录的文件级副本只能由同一平台上使用相同选项构建的相同主要(8.1 / 8.2 / …)版本的Postgresql读取 – 因此,如果datadir来自9.2.x在Windows x64上,只能由安装了9.2.x的其他Windows x64主机读取.

如果您担心原始数据库,那么您可能没有备份.这是一个关键问题.您需要紧急阅读documentation chapter on backup and restore并获得一个良好的自动备份方案.看看barman.

问题编辑后更新:

-F t是一个奇怪的选择;普通的sql转储或-F c通常更有意义.

生成文件不是.gz(gzip压缩)文件,无论如何,它是.tar存档,未压缩.它可以被提取一个充满sql文件的目录中.

要对其进行测试,请使用pg_restore将其还原到使用createdb或CREATE DATABASE命令创建的新空数据库.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...