延迟从属对象的复原

当相关对象不可用时,可以延迟某些依赖于相关对象的对象的复原处理。

数据库逻辑文件,索引和 SQL 具体化查询表 (MQT) 依赖于其他文件以获取其信息。 记录的对象依赖于日志对象来记录更改。 当对象与它们所依赖的对象位于同一库中时, "保存库" (SAVLIB) 和 "恢复库" (RSTLIB) 命令以正确的顺序保存和恢复对象。 将在从属对象所依赖的对象之后保存并复原这些对象。

当对象依赖于其他库中的对象时,或者如果不保存和复原整个库,那么您可以尝试先复原从属对象,然后再复原它们所依赖的对象。 当逻辑文件,索引和 MQT 所依赖的文件不存在时,无法复原这些文件。 当日志不存在时,对象无法启动日志记录。 但是,您可以通过在 "恢复库" (RSTLIB) 或 "恢复对象" (RSTOBJ) 命令上指定 "延迟标识" (DFRID) 参数来延迟恢复这些对象所需的处理并启动日志记录。 当您指定延迟标识时,系统将存储完成复原和启动日志记录所需的信息。 该信息存储在库 QRECOVERY 或 QRCYxxxxx 中的文件中,其中 xxxxx 是独立辅助存储池的编号。 稍后当相关文件和日记帐可用时,该信息可用。

当相关文件和日志可用时,使用具有相同延迟标识的 "复原延迟对象" (RSTDFROBJ) 命令来完成复原并启动从属对象的日志记录。 如果使用相同的延迟标识复原相关文件,那么系统会自动尝试完成延迟文件的复原; 在这种情况下,您不需要使用 RSTDFROBJ 命令。

当使用 "恢复库" (RSTLIB) 命令来恢复所有库 (*NONSYS) ,所有用户库 (*ALLUSR) 或 IBM提供的库 (*IBM) 时, QRSTLIB 是缺省 DFRID 参数值。 这些 RSTLIB 操作在恢复库后自动执行 RSTDFROBJ 操作。 因此,这些 RSTLIB 操作会自动处理以错误顺序恢复的从属对象。 对于其他复原操作,必须指定延迟标识以管理从属对象。

如果使用 IBM Backup, Recovery and Media Services for i (BRMS),Q1ARSTID 将是所有恢复操作的默认延迟 ID 值。

某些类型的延迟对象是在初始复原操作期间创建的。 不会创建其他类型的延迟对象。 系统上不存在延迟逻辑文件。 系统上存在延迟的 MQT ,但您无法在需要访问基于文件的 MQT 上执行功能。 系统上存在已记录的延迟对象,但未启动日志记录。

当数据恢复完成并且不再需要为延迟对象存储的信息时,请使用 "除去延迟标识" (RMVDFRID) 命令来除去该信息。 例如,如果您手动创建延迟对象或对延迟对象启动日志记录,请使用 RMVDFRID 命令。 不再需要的信息可能会导致将来的复原操作发送您不期望的消息。

注: 您可以使用同一延迟标识同时运行多个复原操作。 等待所有复原操作完成,然后再运行 RSTDFROBJ 和 RMVDFRID 命令。 在复原操作仍在运行时运行 RSTDFROBJ 命令可能会导致额外的处理。 在复原操作仍在运行时运行 RMVDFRID 命令可能会过早地除去信息。

延迟复原示例

此命令将所有已保存的非系统库从磁带复原到系统。 打印输出会列出所有延迟的对象,最后一条完成消息会指出已复原的库数和未复原的库数。 在此示例中,系统使用特殊延迟标识值 QRSTLIB ,以便延迟在另一个库中的依赖关系恢复之前恢复的从属文件。 系统尝试在最终复原基础文件时自动复原延迟文件。

RSTLIB SAVLIB(*NONSYS) DEV(TAP01) OUTPUT(*PRINT) DFRID(*DFT)

此示例显示了以正在复原的字母顺序保存的库。 库 LFLIB 包含在库 PFLIB 中具有基础文件的文件。 直到恢复 PFLIB 中的文件之后,才能恢复 LFLIB 中的文件。 指定了延迟标识,因此将延迟 LFLIB 中的文件。 使用 RSTDFROBJ 命令来完成这些文件的复原操作。 如果未在命令上指定延迟标识,那么必须倒带或重新装入磁带以恢复 LFLIB 中的文件。


(Restore libraries before LFLIB.)
RSTLIB SAVLIB(LFLIB) DEV(TAPE01) ENDOPT(*LEAVE) DFRID(ABC)
(Restore libraries between LFLIB and PFLIB.)
RSTLIB SAVLIB(PFLIB) DEV(TAPE01) ENDOPT(*LEAVE) DFRID(ABC)
(Restore libraries after PFLIB).
RSTDFROBJ DFRID(ABC)

RMVDFRID 命令将除去有关在复原操作期间延迟的对象的任何剩余信息。

RMVDFRID DFRID(ABC)