无法从 DB2 备份文件中恢复数据
Posted
技术标签:
【中文标题】无法从 DB2 备份文件中恢复数据【英文标题】:Unable to recover data from DB2 Backup files 【发布时间】:2018-06-15 05:14:07 【问题描述】:我有几个 DB2 备份文件与我们共享。
我无法使用我用作的 DB2 恢复命令来恢复数据 -
db2 restore db <db-name> from . taken at 20151229234633
上述命令出现以下错误。
SQL2071N 访问共享库时发生错误 “/resgrp463/db2inst3/db2inst3/NODE0000/SQL00001/4371/libdb2compr.a”。 原因代码:“2”。
然后我修改了 Recover 命令并通过提供以下命令中提到的压缩库选项添加了另一个参数 -
db2 restore db <db-name> from <location> taken at 20151229234633 comprlib /resgrp463/db2inst1/sqllib/lib64/libdb2compr.a
它给出了如下所述的错误。
SQL2079N 共享库“libdb2compr.a”报告了一个错误。 返回码:“104”。
任何有关如何解决它的帮助或任何指定备份文件已损坏的具体证据将不胜感激。
操作系统版本 - AIX 7.1 TL4
DB2 版本 - DB2 9.7
已尝试的修复包 - GA、1、11(目标方)
在源代码方面,我们不知道使用的确切 Fix Pack,但使用 db2ckbkp 标头信息确认版本为 DB2 9.7,该信息提供 D00 的发布代码。
请查看https://pastebin.com/X8sYELNT的db2diag日志
使用命令检查备份时,我收到如下所述的错误。
使用的命令 -
db2ckbkp *
它给出了错误
已处理的缓冲区:#ERROR:解压库未初始化
错误:无法验证媒体标头。无法继续。
【问题讨论】:
编辑问题以指定 AIX 版本和技术级别,并添加在还原失败时添加到 db2diag 的条目。此外,请添加 源 Db2 实例(进行备份的位置)的 Db2 版本+修订包,以及您正在执行恢复的 目标 Db2 实例。 要使用 db2ckbkp 验证备份映像,有关详细信息,请参阅您的 Db2 版本的在线文档。 @mao 上面已经提到了,请看一下。 对于这种症状,您必须了解双方(源和目标)的 Db2 修订包级别。我记得以前在一个站点发生过这种症状,可能通过确保两端使用相同的压缩库二进制文件来解决。由于这是通过 IBM 支持完成的,因此如果遇到困难,您应该向 IBM 开具支持票。 感谢您的帮助。 【参考方案1】:所有三个错误消息都与 db2 restore 命令所需的 db2 库有关,如每个错误消息所示。 db2 restore 命令执行机器/机器,客户端而不是服务器端存在问题。而这种情况可能发生在: 1) db2 restore 相关文件损坏,例如message中的库文件 2) db2 restore 未命中配置意外读取库文件 对于 1),它可以通过以下方式修复: 再次安装产品或创建一个新实例。这将放置普通文件。 对于 2),它可以通过以下方式修复: 找出环境中发生的变化然后修复。这将选择正确的库文件。 供你参考。对 V9.7 的支持将于 2017 年 9 月 30 日结束,如下所示:推荐的适用于 Linux、UNIX 和 Windows 的 DB2 修复包https://www.ibm.com/support/pages/recommended-fix-packs-db2-linux-unix-and-windows
希望这会有所帮助。
【讨论】:
以上是关于无法从 DB2 备份文件中恢复数据的主要内容,如果未能解决你的问题,请参考以下文章