IMS DB - 恢复

数据库管理员需要在系统出现故障时规划数据库恢复.故障可以是多种类型,例如应用程序崩溃,硬件错误,电源故障等.

简单方法

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

  • 制作重要数据集的定期备份副本,以便保留针对数据集发布的所有事务.

  • 如果数据集因系统故障而损坏,则通过还原备份副本可以解决该问题.然后将累积的交易重新发布到备份副本以使其更新.

简单方法的缺点

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

  • 发布累积的交易消耗了大量的时间.

  • 所有其他应用程序需要等待执行才能完成恢复.

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

异常终止例程

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

  • 关闭所有数据集

  • 取消所有待处理队列中的作业

  • 创建存储转储以找出ABEND的根本原因

此限制例程是它不能确保使用的数据是否准确.

DL/I Log

当应用程序ABEND时,它必须还原应用程序所做的更改,更正错误,然后重新运行应用程序.为此,需要具有DL/I日志.以下是有关DL/I记录和减号的要点;

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

  • 当应用程序更改一个段时,它的前映像和后映像是由DL/创建的我.

  • 如果应用程序崩溃,这些段图像可用于恢复段.

  • DL/I使用称为预写日志记录的技术来记录数据库更改.通过预写日志记录,在将日志数据集写入实际数据集之前,会将数据库更改写入日志数据集.

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

  • 当程序执行更改数据库段的调用时,DL/I会小心它的记录部分.

恢复 - 前进和后退

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

  • 转发恢复 :  DL/I使用日志文件存储更改数据.使用此日志文件重新发布累计交易.

  • 向后恢复 : 向后恢复也称为退出恢复.程序的日志记录被向后读取,它们的效果在数据库中被反转.当回退完成时,数据库处于与失败前相同的状态,假设在此期间没有其他应用程序改变数据库.

检查点

检查点是应用程序完成数据库更改的一个阶段,被认为是完整和准确的.下面列出的是关于检查点的注意事项 :

  • 在最近检查点之前进行的数据库更改不会被向后恢复.

  • 在正向恢复期间,最新检查点未应用于数据库的映像副本后记录的数据库更改.

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

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

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

  • 检查点调用会导致在DL/I日志上写入检查点记录.

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

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

有两种检查点方法 :

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

  • 符号检查点 : 它是一种高级检查点,与扩展重启设施结合使用.符号检查点和扩展重启一起让应用程序员编写程序代码,以便它们可以在检查点之后的点恢复处理.