第三节 故障的种类
一、事务故障
什么是事务故障?某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了。事务故障的常见
原因:输入数据有误,运算溢出,违反了某些完整性限制,某些应用程序出错,并行事务发生死锁
。。。。
事务故障的恢复 :发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘;撤消事务(
UNDO);强行回滚(ROLLBACK)该事务;清除该事务对数据库的所有修改,使得这个事务象根本没有启动过
一样。
二、系统故障
什么是系统故障?整个系统的正常运行突然被破坏,所有正在运行的事务都非正常终止,内存中数据库
缓冲区的信息全部丢失,外部存储设备上的数据未受影响。
系统故障的常见原因:操作系统或DBMS代码错误,操作员操作失误,特定类型的硬件错误(如CPU故障)
突然停电。
系统故障的恢复:清除尚未完成的事务对数据库的所有修改,系统重新启动时,恢复程序要强行撤消(
UNDO)所有未完成事务,将缓冲区中已完成事务提交的结果写入数据库,系统重新启动时,恢复程序需要重做
(REDO)所有已提交的事务。
三、介质故障
硬件故障使存储在外存中的数据部分丢失或全部丢失,介质故障比前两类故障的可能性小得多,但破坏
性大得多。
介质故障的常见原因:磁盘损坏;磁头碰撞;操作系统的某种潜在错误;瞬时强磁场干扰。
介质故障的恢复:装入数据库发生介质故障前某个时刻的数据副本;重做自此时始的所有成功事务,将
这些事务已提交的结果重新记入数据库;恢复操作的基本原理。
恢复操作的基本原理:冗余,利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的
那部分数据。
恢复的实现技术:复杂,一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上。
|