微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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命令创建的新空数据库.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐