DB2 rollfoward 详细示例

前滚会话 - CLP 示例

  •  
  •  
  •  
  •  
  •  
  •  
  •   版本 9.7.0
  • 示例 1

    ROLLFORWARD DATABASE 命令允许每次指定多个操作,各个操作由关键字 AND 隔开。例如,要前滚至日志末尾,然后完成,可将下列独立的命令:

          db2 rollforward db sample to end of logs
          db2 rollforward db sample complete

    组合为:

          db2 rollforward db sample to end of logs and complete

    虽然这两种方法是等效的,但建议您分两个步骤来完成此类操作。在停止前滚操作前验证它是否具有预期的进度,以免丢失任何日志,这一点很重要。

    如果前滚命令遇到错误,前滚操作就无法完成。在此情况下,将返回该错误,这样,您就能够修正该错误并重新发出以上命令。但是,如果无法修正该错误,那么可以通过发出以下命令强制前滚完成:

          db2 rollforward db sample complete

    此命令使数据库联机并复原到发生故障前日志点。

    示例 2

    将数据库前滚至日志末尾(已复原了两个表空间):

          db2 rollforward db sample to end of logs
          db2 rollforward db sample to end of logs and stop

    这两个语句是等效的。不需要 AND STOP 或 AND COMPLETE 表空间就可以前滚恢复至日志末尾。不需要表空间名称。如果未指定,将包括所有需要前滚恢复的表空间。如果将只前滚这些表空间的一个子集,那么必须指定它们的名称。

    示例 3

    复原了 3 个表空间后,将其中一个前滚至日志末尾,另两个前滚到某时间点,所有操作都要联机执行:

          db2 rollforward db sample to end of logs tablespace(TBS1) online
       db2 rollforward db sample to 1998-04-03-14.21.56 and stop
                tablespace(TBS2, TBS3) online

    应注意,两个前滚操作不能并发运行。只有在成功地完成了第一个前滚操作后,才能调用第二个命令。

    示例 4

    复原数据库后,前滚到某时间点,使用 OVERFLOW LOG PATH 来指定用户出口用来保存已归档日志的目录:

       db2 rollforward db sample to 1998-04-03-14.21.56 and stop
                overflow log path (/logs)

    示例 5

    在以下示例中,有一个称为 sample 的数据库。备份该数据库,在备份映像中包含恢复日志;复原该数据库;然后,将该数据库前滚到备份时间戳记末尾。

    备份该数据库,在备份映像中包含恢复日志:

       db2 backup db sample online include logs

    使用备份映像复原该数据库:

          db2 restore db sample

    将该数据库前滚到备份时间戳记末尾:

       db2 rollforward db sample to end of backup

    示例 6(分区数据库环境)

    有三个数据库分区:0、1 和 2。在所有数据库分区上定义表空间 TBS1,在数据库分区 0 和 2 上定义表空间 TBS2。在数据库分区 1 上复原了数据库,并在数据库分区 0 和 2 上复原了 TBS1 之后,在数据库分区 1 上前滚数据库:

          db2 rollforward db sample to end of logs and stop

    这会返回警告 SQL1271(已恢复数据库,但数据库分区 0 和 2 上的一个或多个表空间处于脱机状态)。

       db2 rollforward db sample to end of logs

    此命令在数据库分区 0 和 2 上前滚 TBS1。在此情况下,子句 TABLESPACE(TBS1) 是可选的。

    示例 7(分区数据库环境)

    在以下示例中,有一个称为 sample 的分区数据库。使用单系统视图备份备份所有数据库分区;在所有数据库分区上复原该数据库;将该数据库前滚到备份时间戳记末尾。

    执行单系统视图 (SSV) 备份:

       db2 backup db sample on all nodes online include logs

    在所有数据库分区上复原该数据库:

       db2_all "db2 restore db sample taken at 1998-04-03-14.21.56"

    将该数据库前滚到备份时间戳记末尾:

       db2 rollforward db sample to end of backup on all nodes

    示例 8(分区数据库环境)

    在以下示例中,有一个称为 sample 的分区数据库。使用 db2_all,通过一个命令备份所有数据库分区;在所有数据库分区上复原该数据库;并将该数据库前滚到备份时间戳记末尾。

    使用 db2_all,通过一个命令备份所有数据库分区:

       db2_all "db2 backup db sample include logs to /shared/dir/"

    在所有数据库分区上复原该数据库:

       db2_all "db2 restore db sample from /shared/dir/"

    将该数据库前滚到备份时间戳记末尾:

       db2 rollforward db sample to end of backup on all nodes

    示例 9(分区数据库环境)

    只在数据库分区 0 和 2 上复原表空间 TBS1 之后,在数据库分区 0 和 2 上前滚 TBS1:

          db2 rollforward db sample to end of logs

    忽略数据库分区 1。

       db2 rollforward db sample to end of logs tablespace(TBS1)

    此命令失败,因为 TBS1 未对在数据库分区 1 上进行前滚恢复作好准备。报告 SQL4906N。

       db2 rollforward db sample to end of logs on
                dbpartitionnums (0, 2) tablespace(TBS1)

    成功完成。

       db2 rollforward db sample to 1998-04-03-14.21.56 and stop
                tablespace(TBS1)

    此命令失败,因为 TBS1 未对在数据库分区 1 上进行前滚恢复做好准备;必须将所有段一起前滚。

    注:
    在将表空间前滚到某时间点之后,将不接受 dbpartitionnum 子句。前滚操作必须在表空间所在的所有数据库分区上进行。

    在数据库分区 1 上复原 TBS1 后:

       db2 rollforward db sample to 1998-04-03-14.21.56 and stop
                tablespace(TBS1)

    成功完成。

    示例 10(分区数据库环境)

    在所有数据库分区上复原表空间后前滚至 PIT2,但不指定 AND STOP。前滚操作仍在进行中。取消并前滚至 PIT1:

       db2 rollforward db sample to pit2 tablespace(TBS1)
          db2 rollforward db sample cancel tablespace(TBS1)
    
      ** restore TBS1 on all dbpartitionnums **
    
          db2 rollforward db sample to pit1 tablespace(TBS1)
          db2 rollforward db sample stop tablespace(TBS1)

    示例 11(分区数据库环境)

    前滚恢复 db2nodes.cfg 文件中列示的 8 个数据库分区(3 至 10)上的表空间:

          db2 rollforward database dwtest to end of logs tablespace (tssprodt)

    前滚恢复至日志末尾(而不是时间点)的操作成功完成。不必指定表空间所在的数据库分区。实用程序缺省到 db2nodes.cfg 文件。

    示例 12(分区数据库环境)

    前滚恢复单一数据库分区数据库分区组(在数据库分区 6 上)上的 6 个小表空间:

       db2 rollforward database dwtest to end of logs on dbpartitionnum (6)
                tablespace(tsstore, tssbuyer, tsstime, tsswhse, tsslscat, tssvendor)

    前滚恢复至日志末尾(而不是时间点)的操作成功完成。

    示例 13(分区表 - 在所有数据分区上前滚至日志末尾)

    使用表空间 tbsp1、tbsp2 和 tbsp3 创建了分区表,索引在 tbsp0 中。后来,用户对 tbsp4 中的表添加了数据分区,并从 tbsp5 中的表连接了数据分区。可以将所有表空间前滚至日志末尾。

       db2 rollforward db PBARDB to END OF LOGS and stop
               tablespace(tbsp0, tbsp1, tbsp2, tbsp3, tbsp4, tbsp5)

    成功完成。

    示例 14(分区表 - 在一个表空间上前滚至日志末尾)

    最初使用表空间 tbsp1、tbsp2 和 tbsp3 创建了分区表,索引在 tbsp0 中。后来,用户对 tbsp4 中的表添加了数据分区,并从 tbsp5 中的表连接了数据分区。表空间 tbsp4 损坏并要求复原和前滚至日志末尾。

       db2 rollforward db PBARDB to END OF LOGS and stop tablespace(tbsp4)

    成功完成。

    示例 15(分区表 - 在所有数据分区上前滚到时间点,这些数据分区包括那些已添加、已连接、已拆离或带索引的数据分区)

    使用表空间 tbsp1、tbsp2 和 tbsp3 创建了分区表,索引在 tbsp0 中。后来,用户对 tbsp4 中的表添加了数据分区,从 tbsp5 中的表连接了数据分区,并从 tbsp1 拆离了数据分区。用户对分区表使用的所有表空间(包括 INDEX IN 子句中指定的那些表空间)执行前滚到 PIT 操作。

       db2 rollforward db PBARDB to 2005-08-05-05.58.53 and stop 
               tablespace(tbsp0, tbsp1, tbsp2, tbsp3, tbsp4, tbsp5)

    成功完成。

    示例 16(分区表 - 在一小部分表空间上前滚到 PIT)

    使用三个表空间(tbsp1、tbsp2 和 tbsp3)创建了分区表。后来,用户从 tbsp3 中拆离了所有数据分区。只允许在 tbsp1 和 tbsp2 上前滚到 PIT。

       db2 rollforward db PBARDB to 2005-08-05-06.02.42 and stop 
                tablespace( tbsp1, tbsp2)

    成功完成。

    转自:https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.7.0/com.ibm.db2.luw.admin.ha.doc/doc/c0024711.html

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值