数据库系统概论第十章章数据库恢复技术ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、介质故障
是指外存故障,如:磁盘损坏、瞬时强磁场干扰等 四、计算机病毒
五、各类故障对数据库的影响
1、数据库本身被破坏,如上面的三和四两类。 2、数据库本身没有被破坏,但数据可能不正确,如上 面的一和二两类。
第十章 数据库恢复技术
10.3 恢复的实现技术
• 恢复的基本原理十分简单,可用两个字概括:“冗余” • 恢复机制涉及的两个关键问题:1、如何建立冗余数据? 2、如何利用这些冗余数据实施数据库恢复? • 建立冗余数据最常用的技术:数据转储和登记日志文 件
第十章 数据库恢复技术 一、事务故障的恢复
1、反向扫描日志文件 2、对该事务的每一个更新操作执行逆操作 3、如此处理下去,直到此事务的开始标志
10.4 恢复策略
二、系统故障的恢复
1、正向扫描日志文件,找出故障发来自百度文库前已经提交的事务,将其 事务标识记入REDO队列,找出故障发生时尚未完成的事务, 将其事务标识记入UNDO队列 2、反向扫描日志文件,对每个UNDO事务的更新操作执行逆操 作 3、正向扫描日志文件,对每个REDO事务重新执行日志文件登 记的操作
删除T1的日志 REDO事务T1 删除T2的日志 REDO事务T1 REDO事务T2
第十章 数据库恢复技术
10.4 恢复策略
恢复举例: 假设:A , B , C的初值分别为20 , 10 , 8 且假设:采用即时的数据库修改技术 <T1,START> <T1,START> <T1,START> <T1,A,20,19> <T1,A,20,19> <T1,A,20,19> <T1,B,10,11> <T1,B,10,11> <T1,B,10,11> <T1 Commit> <T1 Commit> 系统故障 <T2,START> <T2,START> <T2,C,8,7> <T2,C,8,7> 系统故障 <T2 Commit> 系统故障
日志记录 Ci检查点记录地址 T1 D1 T2 D2 检查点记录
重新开始文件
日志文件
第十章 数据库恢复技术 10.5 具有检查点的恢复技术
利用检查点技术恢复数据库举例 检查点 T1 不受影响 T2 REDO T3 T4 T5 系统故障
撤销
REDO
撤销
第十章 数据库恢复技术 一、事务内部的故障
10.2 故障的种类
事务内部故障分两类: 1、事务程序本身可发现的,如:转帐时发现资金不够 2、事务程序本身不能发现的,是非预期的,是不能由 应用程序处理的,如:运算溢出、发生死锁等。事务 内部故障主要指该类。
二、系统故障
是指造成系统停止运转的任何事件,使得系统要重新 启动,如:硬件故障、OS或DBMS故障、突然停电等
UNDO事务T1 REDO事务T1 UNDO事务T2 REDO事务T1 REDO事务T2
第十章 数据库恢复技术 10.5 具有检查点的恢复技术
利用日志技术恢复数据库的缺点: 1、搜索整个日志将花费大量的时间 2、许多REDO操作实际上是没有必要的,因为事务已经 将更新结果写到了数据库中。 使用检查点方法可以改善恢复效率,因为在检查点之 前提交的事务对数据库的修改一定都已写入数据库, 没有必要做REDO操作
第十章
数据库恢复技术
要点和难点
• 数据库恢复的含义 • 故障的种类及相应的恢复策略 • 备份、日志、检查点等技术
第十章 数据库恢复技术
10.1 数据库恢复概述
• 数据库系统中已采取了各种措施来防止数据库 的安全性和完整性被破坏,保证并发事务的正 确执行 • 硬件的故障、软件的错误、操作员的失误、人 为的恶意破坏是不可避免的 • 数据库恢复就是把数据库从错误状态恢复到某 一已知的正确状态(或称为一致状态)
三、介质故障的恢复
1、利用数据库副本和日志文件副本恢复数据库到一致性状态 2、利用日志文件副本恢复数据库到故障前某一时刻的一致状态
第十章 数据库恢复技术
10.4 恢复策略
恢复举例: 假设:A , B , C的初值分别为20 , 10 , 8 且假设:采用推迟的数据库修改技术 <T1,START> <T1,START> <T1,START> <T1,A,20,19> <T1,A,20,19> <T1,A,20,19> <T1,B,10,11> <T1,B,10,11> <T1,B,10,11> <T1 Commit> <T1 Commit> 系统故障 <T2,START> <T2,START> <T2,C,8,7> <T2,C,8,7> 系统故障 <T2 Commit> 系统故障
一、数据转储
转储方式 海量转储 增量转储 转储 静态转储 静态海量转储 静态增量转储 状态 动态转储 动态海量转储 动态增量转储 静态转储是指:转储期间不允许有事务运行 动态转储是指:转储期间允许有事务对数据库操作 海量转储是指:每次转储全部数据库 增量转储是指:每次只转储更新过的数据
• • • •
第十章 数据库恢复技术 二、登记日志文件
10.3 恢复的实现技术
日志文件是用来记录事务对数据库的更新操作的文件 1、日志文件的格式和内容 日志文件的格式主要有两种:记录为单位 数据块为单位 ① 记录为单位的日志记录内容: ·事务标识 ·操作的类型(插入、删除或修改) ·操作对象(记录内部标识) ·更新前数据的旧值(插入而言,此项为空) ·更新后数据的新值(删除而言,此项为空) ② 数据块为单位的日志记录内容: ·事务标识 ·被更新的数据块
第十章 数据库恢复技术
10.3 恢复的实现技术
2、日志文件的作用 日志文件在数据库的恢复中起着非常重要的作用 具体的作用请见下一节 3、登记日志文件 登记日志文件必须遵循两条原则: ① 登记的次序严格按并发事务执行的时间次序 ② 必须先写日志文件,后写数据库 写日志文件和写数据库是两个不同的概念,有可能在 这两个操作之间发生故障。如果先写数据库修改,而 没有登记这个修改,一旦发生故障,以后就无法恢复 这个修改了;如果先写日志文件,后写数据库,只不 过是多做了一次不必要的UNDO操作。