DB2:恢复以 TSM 作为日志归档方法的联机备份映像

DB2: restore an online backup image that has TSM as log archiving method

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

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

我通过查看数据库配置意识到 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. 使用db2adutl实用程序从源机器上的TSM服务器中提取日志文件,然后将它们复制到目标机器上。

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

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

如果这些都不是一个选项,并且如果仅将数据库还原到备份完成的时间点是可以接受的,那么您还有一个选择:

  1. 数据库备份映像具有备份 运行 时的活动事务日志文件的副本。您可以将这些提取到磁盘。

在您的 RESTORE DATABASE 命令中,您包含了 logtarget /path/to/write/files 选项:DB2 将在执行恢复时将包含的日志文件从备份映像提取到指定目录中。

然后您可以使用以下路径前滚到备份的末端

rollforward database X 
    to end of backup and complete
    overflow log path (/path/to/write/files)