第13章数据库数据库恢复技术.ppt
《第13章数据库数据库恢复技术.ppt》由会员分享,可在线阅读,更多相关《第13章数据库数据库恢复技术.ppt(70页珍藏版)》请在三一办公上搜索。
1、第13章 数据库恢复技术,13.1 恢复的基本概念13.2 数据库故障的种类13.3 数据库恢复的类型13.4 恢复技术13.5 缓冲区管理,2023年4月4日3时31分,1,概述,计算机同其他任何设备一样,都有可能发生故障。这种情况一旦发生,就有可能造成数据丢失。数据库系统必须采取必要的措施,以保证不会或尽可能减少数据丢失。数据库恢复是DBMS必须提供的功能。,2023年4月4日3时31分,2,13.1恢复的基本概念,数据库恢复是指当数据库发生故障时,将数据库恢复到正确(一致性)状态的过程。数据库恢复是基于事务的原子性特性。数据库恢复过程通常遵循一个可预测的方案。恢复机制有两个关键问题:如何
2、建立备份数据;如何利用备份数据进行恢复。,2023年4月4日3时31分,3,数据转储,数据库恢复采用的基本技术:数据转储(也称为数据库备份)。转储就是定期地将整个数据库复制到辅助存储设备上,比如磁带、磁盘。数据转储只能将数据库恢复到转储时的状态。如果想恢复到故障发生时的状态,则必须利用转储之后的事务日志。,2023年4月4日3时31分,4,转储分类,静态转储在系统中无运行事务时进行。在转储期间不允许对数据库进行任何操作。动态转储不用等待正在运行的事务结束。在转储期间允许运行新的事务。,2023年4月4日3时31分,5,静态与动态转储比较,静态转储实现简单,静态转储得到的一定是数据库的一个一致性
3、副本。转储期间但会降低数据库的可用性。动态转储不能保证转储结束后的数据库副本是正确的必须利用日志将数据库恢复到一致性状态转储期间不会降低数据库的可用性。,2023年4月4日3时31分,6,转储内容分类,海量转储:每次转储全部数据库,增量转储:每次只转储上一次转储之后修改过的数据。从恢复的角度看,用海量转储的数据库副本进行恢复更方便,但如果数据量很大,事务处理又比较频繁,则增量转储会更有效。海量转储和增量转储可以是动态的,也可以是静态的。,2023年4月4日3时31分,7,13.2 数据库故障的种类,数据库故障是指导致数据库值出现错误描述状态的情况,影响数据库运行的故障有多种:事务内部的故障系统
4、故障其它故障,2023年4月4日3时31分,8,事务内部的故障,可预期的这类故障可通过事务程序本身发现。如银行转账事务中,如果A账户金额不足,则不能进行转账。非预期性的这类故障不能由应用程序来处理。如运算溢出或因死锁而被撤销的事务。,2023年4月4日3时31分,9,事务故障,事务故障意味着事务没有达到终点,数据库可能处于不正确的状态。数据库的恢复机制要在不影响其他事务运行的情况下,强行撤销该事务中的全部操作,使该事务就像没发生过一样。这类恢复操作称为事务撤销(UNDO)。,2023年4月4日3时31分,10,系统故障,是指造成系统停止运转、系统要重启的故障。例如:硬件错误(CPU故障)操作系
5、统故障突然停电等。这类故障会影响正在运行的所有事务,但不破坏数据库。,2023年4月4日3时31分,11,系统故障产生的结果,一些未完成事务的结果可能已经送入物理数据库中,从而造成数据库可能处于不正确状态;有些已经提交的事务可能有一部分结果还保留在缓冲区中,尚未写到物理数据库中,因此会丢失这些事务对数据的修改,使数据库处于不一致状态。,2023年4月4日3时31分,12,系统故障恢复方法,恢复子系统在系统重新启动时必须:撤销所有未完成的事务重做所有已提交的事务从而保证将数据库恢复到一致状态。,2023年4月4日3时31分,13,其他故障,介质故障或由计算机病毒引起的故障或破坏,均归为其他故障。
6、介质故障指外存故障,如磁盘损坏等。这类故障会对数据库造成破坏,并影响正在操作的数据库的所有事务。这类故障虽然发生的可能性很小,但破坏性很大。计算机病毒的破坏性很大,而且极易传播,它也可以对数据库造成毁灭性的破坏。,2023年4月4日3时31分,14,故障对数据库的影响,有两种可能性:一种是数据库本身的破坏;另一种是数据库没有破坏,但数据可能不正确(因事务非正常终止)。数据库恢复就是保证数据库的正确和一致,其原理是:冗余。即数据库中任何一部分被破坏的或不正确的数据均可根据冗余数据来重建。恢复的原理很简单,但实现的技术细节却很复杂,2023年4月4日3时31分,15,13.3 数据库恢复的类型,无
7、论出现何种类型的故障,都必须终止或提交事务,以维护数据完整性。事务的恢复类型:向前恢复。向后恢复。介质故障恢复。,2023年4月4日3时31分,16,13.3.1 向前恢复,也称为重做(REDO)用于物理损坏情形的恢复过程。如:磁盘损坏向数据库缓冲区写入数据时的故障将缓冲区中的信息传输到磁盘时出现的故障,2023年4月4日3时31分,17,永久生效的更新,事务的中间结果被写入到数据库缓冲区中,数据在缓冲区和数据库的物理存储之间进行传输。当缓冲区的数据被传输到物理存储器后,更新操作才是永久性的。,2023年4月4日3时31分,18,缓冲区,重做事务,如果在写入缓冲区和传输缓冲数据到物理存储器过程
8、中发生故障,则恢复管理器必须确定故障发生时执行WRITE操作的事务的状态:如果事务已经执行了COMMIT语句,则恢复管理器将重做(也称为前滚)事务的操作并将事务的更新结果保存到数据库中。向前恢复保证了事务的持久性。,2023年4月4日3时31分,19,向前恢复过程,首先读取最新的数据库转储和修改数据的事务日志。然后读取日志记录,从数据库转储之后的第一个记录开始,一直读到物理损坏前的最后一次记录。(从后向前读)对于每一条日志记录,把数据库转储中相关的数据值修改为日志记录中修改后的值,使数据库中的值是事务执行完成后的最终结果。,2023年4月4日3时31分,20,重做示意图,2023年4月4日3时
9、31分,21,13.3.2 向后恢复,向后恢复(也称为撤销,UNDO)用于数据库正常操作过程中发生错误时的恢复过程。这种错误可能是人为键入的数据,或是程序异常结束而留下的未完成的数据库修改。,2023年4月4日3时31分,22,向后恢复(续),如果在故障发生时事务尚未提交,则将导致数据库的不一致性。因此恢复管理器必须撤销(回滚)事务对数据库的所有影响。向后恢复保证了事务的原子性。,2023年4月4日3时31分,23,向后恢复过程,从数据库的当前状态和事务日志的最后一条记录开始,按从前向后的顺序读取日志,将数据库中已更新的数据值改为记录在日志中的更新前的值(前像),直至错误发生点。,2023年4
10、月4日3时31分,24,回滚示意图,2023年4月4日3时31分,25,示例1,2023年4月4日3时31分,26,撤销,撤销,重做,重做,重做,重做,示例2,有事务操作历史及相应的日志记录:,恢复完成之后:A=50,B=50,C=50,系统崩溃,X,故障恢复过程,在发生故障的系统被重启后,数据库的恢复经历了两个阶段:撤销:按逆向顺序读取日志文件中的记录直至第一条记录;重做:顺序向前读取日志文件中的记录直到最后一条记录。大多数商业DBMS都是先进行撤销,再进行重做。,2023年4月4日3时31分,28,在W1(B,80)之后发生故障的事务操作撤销过程,2023年4月4日3时31分,29,在W1
11、(B,80)之后发生故障的事务操作重做过程,2023年4月4日3时31分,30,13.3.3 介质故障恢复,当发生介质故障时,磁盘上的物理数据和日志文件均遭到破坏,这是破坏最严重的一种故障。要从介质故障中恢复数据库,必须在故障前对数据库进行定期转储。在介质正常后,再利用转储恢复数据库。,2023年4月4日3时31分,31,13.4 恢复技术,恢复技术依赖于数据库损坏的类型和程度。基本原则是事务的所有操作必须作为一个逻辑工作单元来对待,并且要保证数据库的一致性。数据库损坏的类型:物理损坏非物理或事务故障,2023年4月4日3时31分,32,物理损坏,需要利用数据库的最新转储进行恢复。如果事务日志
12、文件没有损坏,还可利用事务日志重新执行已提交事务的更新操作。,2023年4月4日3时31分,33,事务故障,需要撤销(回滚)引起不一致的修改。为确保更新已到达物理存储设备,有必要重做(前滚)一些事务。通过使用事务日志文件中更新前的值(前像)和更新后的值(后像),使数据库恢复到一致性状态。这种技术也称为基于日志的恢复技术。有两种:延迟更新立即更新,2023年4月4日3时31分,34,13.4.1 延迟更新技术,只有到达事务的提交点,更新才被写入数据库。即:数据库的更新要延迟到事务执行成功并提交时。在事务执行过程中,更新只被记录在事务日志和缓冲区中。当事务提交后,更新被记录到数据库。,2023年4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 数据库 恢复 技术

链接地址:https://www.31ppt.com/p-4101622.html