《讲数据库恢复》PPT课件.ppt

上传人:牧羊曲112 文档编号:5605043 上传时间:2023-08-01 格式:PPT 页数:30 大小:262.50KB
返回 下载 相关 举报
《讲数据库恢复》PPT课件.ppt_第1页
第1页 / 共30页
《讲数据库恢复》PPT课件.ppt_第2页
第2页 / 共30页
《讲数据库恢复》PPT课件.ppt_第3页
第3页 / 共30页
《讲数据库恢复》PPT课件.ppt_第4页
第4页 / 共30页
《讲数据库恢复》PPT课件.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《讲数据库恢复》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《讲数据库恢复》PPT课件.ppt(30页珍藏版)》请在三一办公上搜索。

1、第十章 数据库恢复技术,事务 故障的种类 恢复的实现技术、策略 具有检查点的恢复技术,设想网上购物的一次交易,付款过程包括以下DB操作:1)更新所购商品的库存信息;2)与银行系统交互,保存客户付款信息;3)生成订单,一、事务,事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。,定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2。COMMIT ROLLBACK,事务的特性(ACID特性),原子性(Atomicity)一致性(Consis

2、tency)隔离性(Isolation)持续性(Durability),1.原子性,事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。,2.一致性,定义事务时,应保证事务执行的结果必使数据库从一个一致性状态变到另一个一致性状态.,例:银行转帐,从帐号A中取出一万元,存入帐号B。,3.隔离性,对并发执行而言,一个事务的执行不能被其他事务干扰。,T1的修改被T2覆盖了!,4.持续性,一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。,思考:破坏事务ACID特性的因素可能有哪些?,回顾,什么叫事务?如何用SQL语句定义事务?事务的特性?在哪些情况下事务的特性可能遭到破坏?,

3、二、故障的种类,1.事务故障:事务在运行过程中被中断,没有达到预期的终点。例如:运算溢出,并发死锁而被撤销的事务思考:事务故障带来的问题2.系统故障:造成系统停止运转的事件,影响所有正在运行的事务。例如:系统断电,CPU故障,OS故障等思考:系统故障带来的问题3.介质故障:硬故障,指外存故障,如磁盘损坏、磁场干扰等。4.计算机病毒,三、恢复的实现技术,基本原理:冗余 当数据库被破坏或产生不正确的数据时,用存储在系统别处的冗余数据来重建。,如何建立冗余数据?数据转储 登记日志文件,1 数据转储,转储是指DBA定期地将整个数据库复制到另一个磁盘上保存起来的过程;备用数据称为副本。当数据库被破坏,可

4、将副本重新装入。,转储的分类,静态转储:转储过程中不允许运行事务。动态转储:转储过程中允许运行事务。思考:转储得到的副本上的数据是否正确有效?,海量转储:转储全部数据。增量转储:只转储上一次转储后更新过的数据。思考:用哪种转储方式得到的副本进行恢复更方便?如果数据库很大,使用哪种方式转储更有效?,利用静态转储副本进行恢复,故障发生点 静态转储 运行事务 正常运行 Ta Tb Tf 重装后备副本 恢复,利用动态转储副本进行恢复,Ta Tb Tf 动态转储 运行事务 故障发生点正常运行 登记日志文件 登记新日志文件 转储日志文件 重装后备副本,然后利用转储的日志文件恢复恢复到一 致性状态,转储方法

5、小结,2 日志文件,日志文件是用来记录事务对数据库的更新操作的文件日志文件的内容,包括:事务开始标记、结束标记、更新操作每个日志记录包括:事务标识操作类型操作对象更新前数据的旧值更新后数据的新值作用:事务故障和系统故障的恢复;协助后备副本恢复数据库。登记日志文件的原则:按时间次序登记;先写日志文件,后写数据库,三、恢复策略,1 事务故障的恢复由恢复子系统利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复由系统自动完成,不需要用户干预。具体步骤:,1)反向扫描文件日志,查找该事务的更新操作;2)对该事务的更新操作执行逆操作。3)继续反向扫描日志文件,查找该事务的其他更新操作,

6、并做同样处理;4)直至读到此事务的开始标记,事务故障恢复完成。,2 系统故障的恢复,系统故障造成数据库不一致状态的原因一些未完成事务对数据库的更新已写入数据库一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库恢复方法1.Undo 故障发生时未完成的事务2.Redo 已完成的事务系统故障的恢复由系统在重新启动时自动完成,不需要用户干预,具体步骤,1)正向扫描日志文件(即从头扫描日志文件)Redo队列:在故障发生前已经提交的事务Undo队列:故障发生时尚未完成的事务2)对Undo队列事务进行UNDO处理 反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作3)对Redo队列事务进行RE

7、DO处理 正向扫描日志文件,对每个REDO事务重新执行登记过的操作,3 介质故障的恢复,恢复步骤1)装入最新的数据库副本,使数据库恢复到最近一次转储时的一致性状态。对于静态转储的数据库副本,装入后数据库即处于一致性状态对于动态转储的数据库副本,还须同时装入转储时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。2)装入相应的日志文件副本,重做已完成的事务。,1.事务的隔离性是由DBMS的()A.恢复子系统出现 B.完整性子系统实现 C.安全性子系统实现 D.并发控制子系统实现 2.在数据库系统中死锁属于()A.系统故障B.程序故障C.事务故障D.介

8、质故障3.若一个事务执行成功,则它的全部更新被提交;若一个事务执行失败,则DB中被其更新过的数据恢复原状,就象这些更新从未发生过,这保持了数据库处于()A.安全性状态 B.一致性状态 C.完整性状态 D.可靠性状态,练习:,四、具有检查点的恢复技术,1 利用日志进行数据库恢复时遇到的问题:搜索整个日志将耗费大量的时间REDO处理:重新执行,浪费大量时间,2 解决方案:具有检查点的恢复技术在日志文件中增加检查点记录(checkpoint)增加重新开始文件,3 具有检查点的日志文件和重新开始文件:,周期性执行如下操作:1.将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上;2.在日志文件中写入一

9、个检查点记录;3.将当前数据缓冲区的所有数据记录写入磁盘的数据库中;4.把检查点记录在日志文件中的地址写入重新开始文件。,4 利用检查点的恢复策略,当事务T在一个检查点之前提交,T对数据库所做的修改一定已写入数据库在进行恢复处理时,没有必要对事务T执REDO操作,5 使用检查点方法进行恢复的步骤,1)从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录;2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST建立两个事务队列UNDO-LIST REDO-LIST 把ACTIVE-LIST暂时放入UNDO-LIST队列,RE

10、DO队列暂为空。,3)从检查点开始正向扫描日志文件,直到日志文件结束如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列4)对UNDO-LIST中的每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作,五、数据库镜像,许多DBMS提供数据库镜像功能用于数据库恢复。,小结,事务是数据库的逻辑工作单位DBMS保证系统中一切事务的ACID特性恢复的基本原理:利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库常用恢复技术事务故障的恢复:UNDO系统故障的恢复:UNDO+REDO介质故障

11、的恢复重装备份并恢复到一致性状态+REDO提高恢复效率的技术检查点技术可以提高系统故障的恢复效率镜像技术镜像技术可以改善介质故障的恢复效率,练习:,设有四个事务:Tl,T2,T3,T4;在系统崩溃之前,系统在日志中记录了如下内容:Start-Transaction,Tl;Read-Item,T1,A;Read-Item,T1,D;White-Item,T1,D,20;Commit,T1;Checkpoint;Start-Transaction,T2;Read-Item,T2,B;Write-ltem,T2,B,l2;Start-Transaction,T4;Read-Item,T4,B;Write-Item,T4,B,l5;Start-Transaction,T3;Read-Item,T3,A;Write-Item,T3,A,30;Read-Item,T4,A;Write-Item,T4,A,20;Commit,T4;Read-Item,T2,D;Write-Item,T2,D,25如果系统采用立即修改的恢复技术和检查点机制,当系统重启后,哪些事务需要Redo?哪些事务需要Undo?,A,B,B,学习目标,理解并掌握事务的概念及特性掌握数据库恢复的基本概念掌握数据库恢复的基本实现技术了解数据库恢复的基本策略,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号