IMS 数据库 – 恢复

IMS 数据库 – 恢复


数据库管理员需要为系统故障时的数据库恢复做计划。故障可以有多种类型,例如应用程序崩溃、硬件错误、电源故障等。

简单的方法

数据库恢复的一些简单方法如下 –

  • 定期备份重要数据集,以便保留针对数据集发布的所有交易。

  • 如果数据集由于系统故障而损坏,则可以通过恢复备份副本来纠正该问题。然后将累积的事务重新发布到备份副本以使其保持最新状态。

简单方法的缺点

简单的数据库恢复方法的缺点如下 –

  • 重新发布累积的交易会消耗大量时间。

  • 所有其他应用程序都需要等待执行,直到恢复完成。

  • 如果涉及逻辑和二级索引关系,数据库恢复比文件恢复要长。

异常终止程序

DL/I 程序崩溃的方式与标准程序崩溃的方式不同,因为标准程序是由操作系统直接执行的,而 DL/I 程序则不是。通过使用异常终止例程,系统会进行干扰,以便在异常结束 (ABEND) 之后进行恢复。异常终止例程执行以下操作 –

  • 关闭所有数据集
  • 取消队列中的所有待处理作业
  • 创建存储转储以找出 ABEND 的根本原因

此例程的局限性在于它不能确保使用的数据是否准确。

DL/I 日志

当应用程序异常终止时,需要恢复应用程序所做的更改,纠正错误,并重新运行应用程序。为此,需要有 DL/I 日志。以下是有关 DL/I 日志记录的要点 –

  • DL/I 将应用程序所做的所有更改记录在称为日志文件的文件中。

  • 当应用程序改变一个段时,DL/I 创建它的前映像和后映像。

  • 这些段映像可用于恢复段,以防应用程序崩溃。

  • DL/I 使用一种称为预写日志记录的技术来记录数据库更改。使用预写式日志记录,数据库更改会在写入实际数据集之前先写入日志数据集。

  • 由于日志始终位于数据库之前,因此恢复实用程序可以确定任何数据库更改的状态。

  • 当程序执行更改数据库段的调用时,DL/I 负责其日志记录部分。

恢复 – 向前和向后

数据库恢复的两种方法是 –

  • Forward Recovery  – DL/I 使用日志文件来存储更改数据。使用此日志文件重新发布累积的事务。

  • 向后恢复– 向后恢复也称为回退恢复。程序的日志记录是向后读取的,它们在数据库中的影响是相反的。回退完成后,数据库处于与故障前相同的状态,假设在此期间没有其他应用程序更改数据库。

检查站

检查点是应用程序完成的数据库更改被认为是完整和准确的阶段。下面列出了有关检查点的注意事项 –

  • 在最近的检查点之前所做的数据库更改不会被反向恢复逆转。

  • 在前向恢复期间,在最近的检查点之后记录的数据库更改不会应用于数据库的映像副本。

  • 使用检查点方法,当恢复过程完成时,数据库将恢复到最近检查点的状态。

  • 批处理程序的默认设置是检查点是程序的开头。

  • 可以使用检查点调用 (CHKP) 来建立检查点。

  • 检查点调用会导致将检查点记录写入 DL/I 日志。

下面显示的是 CHKP 调用的语法 –

CALL 'CBLTDLI' USING DLI-CHKP
                     PCB-NAME
                     CHECKPOINT-ID

有两种检查点方法 –

  • 基本检查点– 它允许程序员发出 DL/I 恢复实用程序在恢复处理期间使用的检查点调用。

  • 符号检查点– 它是一种高级形式的检查点,与扩展重启工具结合使用。符号检查点和扩展重新启动一起让应用程序员对程序进行编码,以便他们可以在检查点之后的点继续处理。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁