- IMS DB 基础教程
- IMS DB - 首页
- IMS DB - 概述
- IMS DB - 结构
- IMS DB - DL/I 术语
- IMS DB - DL/I 处理
- IMS DB - 控制块
- IMS DB - 编程
- IMS DB - Cobol 基础
- IMS DB - DL/I 函数
- IMS DB - PCB 掩码
- IMS DB - SSA
- IMS DB - 数据检索
- IMS DB - 数据操作
- IMS DB - 二级索引
- IMS DB - 逻辑数据库
- IMS DB - 恢复
- IMS DB 有用资源
- IMS DB - 问答
- IMS DB - 快速指南
- IMS DB - 有用资源
IMS DB - 恢复
数据库管理员需要计划数据库恢复以防系统故障。故障可能有多种类型,例如应用程序崩溃、硬件错误、电源故障等。
简单方法
数据库恢复的一些简单方法如下:
定期备份重要数据集,以便保留针对数据集发布的所有事务。
如果数据集由于系统故障而损坏,则通过恢复备份副本来解决该问题。然后将累积的事务重新发布到备份副本,以使其更新。
简单方法的缺点
简单方法的缺点如下:
重新发布累积的事务会消耗大量时间。
在恢复完成之前,所有其他应用程序都需要等待执行。
如果涉及逻辑和二级索引关系,则数据库恢复比文件恢复更长。
异常终止例程
DL/I 程序崩溃的方式与标准程序崩溃的方式不同,因为标准程序由操作系统直接执行,而 DL/I 程序则不是。通过使用异常终止例程,系统会进行干预,以便在异常结束 (ABEND) 后可以进行恢复。异常终止例程执行以下操作:
- 关闭所有数据集
- 取消队列中所有挂起的作业
- 创建存储转储以找出 ABEND 的根本原因
此例程的限制在于它不能确保正在使用的数据是否准确。
DL/I 日志
当应用程序程序 ABEND 时,需要恢复应用程序程序所做的更改,更正错误,然后重新运行应用程序程序。为此,需要有 DL/I 日志。以下是关于 DL/I 日志的关键点:
DL/I 将应用程序程序在文件中进行的所有更改记录到称为日志文件的文件中。
当应用程序程序更改段时,DL/I 会创建其之前映像和之后映像。
如果应用程序程序崩溃,则可以使用这些段映像来恢复段。
DL/I 使用称为“预写日志”的技术来记录数据库更改。使用预写日志,数据库更改会在写入实际数据集之前写入日志数据集。
由于日志始终领先于数据库,因此恢复实用程序可以确定任何数据库更改的状态。
当程序执行调用以更改数据库段时,DL/I 会处理其日志记录部分。
恢复 - 前向和后向
数据库恢复的两种方法是:
前向恢复 - DL/I 使用日志文件存储更改数据。使用此日志文件重新发布累积的事务。
后向恢复 - 后向恢复也称为回退恢复。向后读取程序的日志记录,并在数据库中反转其效果。回退完成后,数据库将恢复到故障之前的状态,假设在此期间没有其他应用程序程序更改数据库。
检查点
检查点是应用程序程序完成的数据库更改被认为完整且准确的阶段。以下是关于检查点的注意事项:
在最近检查点之前进行的数据库更改不会被后向恢复反转。
在最近检查点之后记录的数据库更改不会在正向恢复期间应用于数据库的映像副本。
使用检查点方法,当恢复过程完成后,数据库将恢复到最近检查点时的状态。
批处理程序的默认值是检查点是程序的开头。
可以使用检查点调用 (CHKP) 建立检查点。
检查点调用会导致在 DL/I 日志上写入检查点记录。
以下是 CHKP 调用的语法:
CALL 'CBLTDLI' USING DLI-CHKP PCB-NAME CHECKPOINT-ID
有两种检查点方法:
基本检查点 - 它允许程序员发出 DL/I 恢复实用程序在恢复处理期间使用的检查点调用。
符号检查点 - 它是检查点的一种高级形式,与扩展重新启动功能结合使用。符号检查点和扩展重新启动共同允许应用程序程序员对程序进行编码,以便它们可以在检查点之后的点恢复处理。