欢迎来到天天文库
浏览记录
ID:62137535
大小:1.40 MB
页数:137页
时间:2021-04-18
《最新数据库系统教程 教学课件 何玉洁 李宝安 第13章 数据库恢复技术教学讲义PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库系统教程教学课件何玉洁李宝安第13章数据库恢复技术数据库系统教程第13章数据库恢复技术2第13章数据库恢复技术13.1恢复的基本概念13.2数据库故障的种类13.3数据库恢复的类型13.4恢复技术13.5缓冲区管理2021/8/73转储分类静态转储在系统中无运行事务时进行。在转储期间不允许对数据库进行任何操作。动态转储不用等待正在运行的事务结束。在转储期间允许运行新的事务。2021/8/77静态与动态转储比较静态转储实现简单,静态转储得到的一定是数据库的一个一致性副本。转储期间但会降低数据库的可用性。动态转储不
2、能保证转储结束后的数据库副本是正确的必须利用日志将数据库恢复到一致性状态转储期间不会降低数据库的可用性。2021/8/78转储内容分类海量转储:每次转储全部数据库,增量转储:每次只转储上一次转储之后修改过的数据。从恢复的角度看,用海量转储的数据库副本进行恢复更方便,但如果数据量很大,事务处理又比较频繁,则增量转储会更有效。海量转储和增量转储可以是动态的,也可以是静态的。2021/8/7913.2数据库故障的种类数据库故障是指导致数据库值出现错误描述状态的情况,影响数据库运行的故障有多种:事务内部的故障系统故障其它故障
3、2021/8/710事务内部的故障可预期的这类故障可通过事务程序本身发现。如银行转账事务中,如果A账户金额不足,则不能进行转账。非预期性的这类故障不能由应用程序来处理。如运算溢出或因死锁而被撤销的事务。2021/8/711事务故障事务故障意味着事务没有达到终点,数据库可能处于不正确的状态。数据库的恢复机制要在不影响其他事务运行的情况下,强行撤销该事务中的全部操作,使该事务就像没发生过一样。这类恢复操作称为事务撤销(UNDO)。2021/8/712系统故障是指造成系统停止运转、系统要重启的故障。例如:硬件错误(CPU故
4、障)操作系统故障突然停电等。这类故障会影响正在运行的所有事务,但不破坏数据库。2021/8/713系统故障产生的结果一些未完成事务的结果可能已经送入物理数据库中,从而造成数据库可能处于不正确状态;有些已经提交的事务可能有一部分结果还保留在缓冲区中,尚未写到物理数据库中,因此会丢失这些事务对数据的修改,使数据库处于不一致状态。2021/8/714系统故障恢复方法恢复子系统在系统重新启动时必须:撤销所有未完成的事务重做所有已提交的事务从而保证将数据库恢复到一致状态。2021/8/715其他故障介质故障或由计算机病毒引起的
5、故障或破坏,均归为其他故障。介质故障指外存故障,如磁盘损坏等。这类故障会对数据库造成破坏,并影响正在操作的数据库的所有事务。这类故障虽然发生的可能性很小,但破坏性很大。计算机病毒的破坏性很大,而且极易传播,它也可以对数据库造成毁灭性的破坏。2021/8/716故障对数据库的影响有两种可能性:一种是数据库本身的破坏;另一种是数据库没有破坏,但数据可能不正确(因事务非正常终止)。数据库恢复就是保证数据库的正确和一致,其原理是:冗余。即数据库中任何一部分被破坏的或不正确的数据均可根据冗余数据来重建。恢复的原理很简单,但实现
6、的技术细节却很复杂2021/8/71713.3数据库恢复的类型无论出现何种类型的故障,都必须终止或提交事务,以维护数据完整性。事务的恢复类型:向前恢复。向后恢复。介质故障恢复。2021/8/71813.3.1向前恢复也称为重做(REDO)用于物理损坏情形的恢复过程。如:磁盘损坏向数据库缓冲区写入数据时的故障将缓冲区中的信息传输到磁盘时出现的故障2021/8/719永久生效的更新事务的中间结果被写入到数据库缓冲区中,数据在缓冲区和数据库的物理存储之间进行传输。当缓冲区的数据被传输到物理存储器后,更新操作才是永久性的。缓
7、冲区2021/8/720重做事务如果在写入缓冲区和传输缓冲数据到物理存储器过程中发生故障,则恢复管理器必须确定故障发生时执行WRITE操作的事务的状态:如果事务已经执行了COMMIT语句,则恢复管理器将重做(也称为前滚)事务的操作并将事务的更新结果保存到数据库中。向前恢复保证了事务的持久性。2021/8/721向前恢复过程首先读取最新的数据库转储和修改数据的事务日志。然后读取日志记录,从数据库转储之后的第一个记录开始,一直读到物理损坏前的最后一次记录。(从后向前读)对于每一条日志记录,把数据库转储中相关的数据值修改为
8、日志记录中修改后的值,使数据库中的值是事务执行完成后的最终结果。2021/8/722重做示意图2021/8/72313.3.2向后恢复向后恢复(也称为撤销,UNDO)用于数据库正常操作过程中发生错误时的恢复过程。这种错误可能是人为键入的数据,或是程序异常结束而留下的未完成的数据库修改。2021/8/724向后恢复(续)如果在故障发生时事务尚未提
此文档下载收益归作者所有