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