加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:01:18 所属栏目:百科 来源:网络整理
导读:我正在使用 postgresql备份/恢复数据,因为我使用的是pg_dump.exe和pg_restore.exe. 为了恢复备份文件,我必须删除数据库中的实际表,如果转储文件的内容不正确,可以是“自杀作业”. 我可以检查转储文件的完整性(例如)’7z t mydump.gz’我喜欢的第一次测试. 但
我正在使用 postgresql备份/恢复数据,因为我使用的是pg_dump.exe和pg_restore.exe.

为了恢复备份文件,我必须删除数据库中的实际表,如果转储文件的内容不正确,可以是“自杀作业”.

我可以检查转储文件的完整性(例如)’7z t mydump.gz’我喜欢的第一次测试.

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

如果做的话,如何进行适当的检查?

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

“C:Program Files (x86)PostgreSQL9.1binpg_dump.exe” –host localhost –port 5432 –username “postgres” –no-password –verbose -F t –file “C:UsersUser 1Desktopmydatabase.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命令创建的新空数据库.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读