数据库的恢复
为什么要数据库恢复
故障是不可避免的
计算机硬件故障
系统软件和应用软件的错误
操作员的失误
恶意的破坏
故障的影响
轻则造成运行事务非正常中断,影响数据库中数据的正确性
重则破坏数据库,使数据库中数据部分或全部丢失。例,银行转帐。
恢复的原理
事务故障
某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了
系统故障
由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。
介质故障
硬件故障使存储在外存中的数据部分丢失或全部丢失
操作系统或DBMS代码错误
操作员操作失误
特定类型的硬件错误(如CPU故障)
突然停电
输入数据有误
运算溢出
违反了某些完整性限制
某些应用程序出错
并行事务发生死锁
事务故障
事务故障的恢复
发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘。
事务故障的恢复:事务撤消(UNDO)
恢复程序要在不影响其它事务运行的情况下,强行回滚(ROLLBACK)该事务,即清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样
系统故障
系统故障的恢复
1. 清除尚未完成的事务对数据库的所有修改
如果DBMS无法确定哪些事务已更新过数据库,则系统重新启动后,恢复程序要强行撤消(UNDO)所有未完成事务,使这些事务象没有运行过一样。
2. 将缓冲区中已完成事务提交的结果写入数据库
如果DBMS无法确定哪些事务的提交结果尚未写入物理数据库,则系统重新启动后,恢复程序需要重做(REDO)所有已提交的事务。
介质故障常见原因
硬件故障
磁盘损坏
磁头碰撞
操作系统的某种潜在错误
瞬时强磁场干扰
介质故障(续)
介质故障的恢复
装入数据库发生介质故障前某个时刻的数据副本
重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库(REDO)
故障的种类小结
数据库系统中各类故障对数据库的影响
数据库本身被破坏(介质故障)
数据库处于不一致状态
数据库中包含了未完成事务对数据库的修改(事务故障、系统故障)
数据库中丢失了已提交事务对数据库的修改(系统故障)
不同类型的故障应采用不同的恢复操作
故障的种类小结(续)
恢复操作的基本原理:简单
任何恢复操作的原理都是一样的
原理:利用存储在系统其它地方的冗余数据来重建数据库中已经被破坏或已经不正确的那部分数据
恢复的实现技术:复杂
一般一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上
恢复的实现技术
恢复技术的原理
利用存储在系统其它地方的冗余数据来修复或重建数据库中被破坏的或不正确的数据。
利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库
恢复机制涉及的关键问题
1. 如何建立冗余数据
数据转储
登记日志文件
2. 如何利用这些冗余数据实施数据库恢复
数据库的恢复-课件·PPT 来自淘豆网m.daumloan.com转载请标明出处.