【问题标题】:DB2: restore an online backup image that has TSM as log archiving methodDB2:恢复以 TSM 作为日志归档方法的联机备份映像
【发布时间】:2016-09-07 18:01:16
【问题描述】:

我正在尝试从远程服务器本地恢复 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".

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

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

【问题讨论】:

    标签: sql database db2 db2-luw


    【解决方案1】:

    正确的做法是:

    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)
    

    【讨论】:

    • 谢谢伊恩。我对数据库进行了另一个在线备份并压缩了日志文件,所以你的建议 #3 解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多