Ims Db 简明教程
IMS DB - Recovery
数据库管理员需要针对系统故障制定数据库恢复计划。故障可能有多种类型,例如应用程序崩溃、硬件错误、电源故障等。
Simple Approach
一些简单的数据库恢复方法如下 −
-
定期对重要数据集制作备份副本,以便保留针对该数据集发布的所有事务。
-
如果某个数据集因系统故障而损坏,可以通过还原备份副本来更正该问题。然后,将累积的事务重新发布到备份副本以使其是最新的。
Abnormal Termination Routines
DL/I 程序的崩溃方式与标准程序的崩溃方式不同,因为标准程序是由操作系统直接执行的,而 DL/I 程序则不是。通过使用异常终止例程,系统会进行干预,以便在异常终止 (ABEND) 后可以进行恢复。异常终止例程执行以下操作 −
-
Closes all datasets
-
取消队列中所有待处理作业
-
创建存储转储以找出 ABEND 的根本原因
该例程的局限性在于,它无法确保正在使用的数据是否准确。
DL/I Log
当应用程序 ABEND 时,有必要还原应用程序所做的更改、更正错误并重新运行应用程序。为此,必须拥有 DL/I 日志。以下是有关 DL/I 日志记录的关键点 −
-
DL/I 在文件中记录应用程序所做的所有更改,该文件称为日志文件。
-
当应用程序更改一个段时,DL/I 会创建它的之前映像和之后映像。
-
如果应用程序崩溃,可以使用这些段映像来还原这些段。
-
DL/I 使用一种称为“预写日志记录”的技术来记录数据库更改。通过预先写日志记录,数据库更改在写入实际数据集之前先写入日志数据集。
-
由于日志始终领先于数据库,恢复实用程序可以确定任何数据库更改的状态。
-
当程序执行调用以更改数据库段时,DL/I 将负责其日志记录部分。
Recovery – Forward and Backward
数据库恢复的两种方法是 -
-
Forward Recovery - DL/I 使用日志文件存储更改数据。积累的交易使用此日志文件重新过帐。
-
Backward Recovery -向后恢复也称为回退恢复。程序的日志记录被反向读取,它们的影响在数据库中被逆转。当回退完成时,数据库处于与故障发生前相同的状态,假设在此期间没有其他应用程序程序更改数据库。
Checkpoint
检查点是应用程序程序执行的数据库更改被认为是完整且准确的阶段。下面列出了有关检查点需要注意的事项 -
-
最近的检查点之前进行的数据库更改不会被向后恢复逆转。
-
在正向恢复期间,最近检查点之后记录的数据库更改不会应用于数据库的映像副本。
-
使用检查点方法,当恢复过程完成时,数据库将恢复到其在最近检查点时的状态。
-
批处理程序的默认设置是检查点是程序的开始。
-
可以使用检查点调用 (CHKP) 建立检查点。
-
检查点调用会触发检查点记录被写入 DL/I 日志。
以下是 CHKP 调用的语法 -
CALL 'CBLTDLI' USING DLI-CHKP
PCB-NAME
CHECKPOINT-ID
有两种检查点方法 -
-
Basic Checkpointing - 它允许程序员发出 DL/I 恢复实用程序在恢复处理期间使用的检查点调用。
-
Symbolic Checkpointing - 这是检查点的先进形式,与扩展重启功能结合使用。符号检查点和扩展重启共同让应用程序程序员编写程序,以便它们可以在检查点之后的点继续处理。