DB2:还原具有TSM作为日志存档方法的在线备份映像

时间:2016-09-07 18:01:16

标签: sql database db2 db2-luw

我正在尝试从远程服务器本地恢复DB2在线备份映像。我可以成功恢复它,但是当我尝试向前滚动数据库时,我收到此错误:

SQL2071N An error occurred while accessing the shared library "/home/db2inst1/sqllib/adsm/libtsm.a". Reason code: "2".

通过查看db配置,我意识到LOGARCHMETH1设置为TSM,这意味着TSM是原始DB2安装上的日志归档方法。我将值设置为disk:/path并再次运行前滚操作。这是状态:

                                 Rollforward Status

 Input database alias                   = devcldx
 Number of members have returned status = 1

 Member ID                              = 0
 Rollforward status                     = DB  pending
 Next log file to be read               = S0000645.LOG
 Log files processed                    =  -
 Last committed transaction             = 2016-08-30-19.48.31.000000 UTC

这是我在尝试前进到日志结尾时得到的结果:

SQL1273N  
An operation reading the logs on database "DEVCLDX" cannot continue 
because of a missing log file "S0000645.LOG" on database partition "0" and log 
stream "0".

显然我的本地计算机上不存在日志文件。

有什么方法可以完成前滚吗?

1 个答案:

答案 0 :(得分:1)

这样做的正确方法是:

  1. 使用B实用程序从源计算机上的TSM服务器中提取日志文件,然后将它们复制到目标计算机。

  2. 在计算机上安装TSM客户端并将其配置为充当主服务器,以便它可以检索日志文件。 (这有点复杂)。

  3. 这些选项中的任何一个都可以让您恢复到任何时间点。

    如果这些都不是一个选项,并且只将数据库还原到备份完成的时间点,则还有一个选项:

    1. 数据库备份映像具有备份运行时的活动事务日志文件的副本。您可以将这些提取到磁盘。
    2. db2adutl命令中,包含RESTORE DATABASE选项:DB2将在执行还原时将备份映像中包含的日志文件解压缩到指定目录中。

      然后,您可以使用以下路径执行前滚到结束备份

      logtarget /path/to/write/files