收藏 分享(赏)

数据库系统第七章.ppt

上传人:hskm5268 文档编号:8179426 上传时间:2019-06-13 格式:PPT 页数:27 大小:176KB
下载 相关 举报
数据库系统第七章.ppt_第1页
第1页 / 共27页
数据库系统第七章.ppt_第2页
第2页 / 共27页
数据库系统第七章.ppt_第3页
第3页 / 共27页
数据库系统第七章.ppt_第4页
第4页 / 共27页
数据库系统第七章.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、第七章 数据库恢复技术,事务的基本概念和事务的性质数据库的恢复技术 恢复策略,7.1 事务的基本概念,事务的定义 由一系列操作序列构成的程序执行单元, 这些操作要么都做,要么都不做,是一个不可分割的工作单位。例如:银行的一次转帐 事务和程序事务:一条SQL语句、一组SQL语句或一段程序。程序:通常,一个程序中包含多个事务。,事务处理技术包括数据库恢复技术和并发控制技术。事务是恢复和并发控制的基本单位。,7.1 事务的基本概念,定义事务事务的开始和结束可以让用户显式地定义事务。DBMS自动进行划分。 SQL中事务的定义事务以Begin transaction开始,以Commit或 Rollbac

2、k结束。* Commit:表示提交,事务正常结束。* Rollback:表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态。,示例 银行转帐:事务T从A帐户过户50¥到B帐户。T: read(A);A := A 50;write(A);read(B);B := B + 50;write(B); read(X):从数据库传送数据项X到事务的工作区中。 write(X):从事务的工作区中将数据项X写回数据库。,7.1 事务的基本概念,事务特性( ACID) 原子性(Atomicity):逻辑工作单位事务中包含的所有操作要么全做,要么全不做。原子性由恢复机制实现。 一致性(Consiste

3、ncy):事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态。数据库的一致性状态由用户来负责。如银行转帐,转帐前后两个帐户金额之和应保持不变。,事务特性( ACID) 隔离性(Isolation)系统必须保证事务不受其它并发执行事务的影响。对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行。隔离性通过并发控制机制实现。 持久性(Durability)一个事务一旦提交之后,它对数据库的影响必须是永久的。系统发生故障不能改变事务的持久性。持久性通过恢复机制实现。,事务ACID特性可能遭到破坏的因素 多个事务并发运行,多个事务交

4、叉执行; 破坏:隔离性 运行中的事务被强行中止; 破坏:原子性、一致性和持久性,保持事务的ACID性是数据库管理系统中 恢复机制和并发控制机制的责任。,7.2 数据库恢复概述,数据库的恢复指把数据库从错误状态恢复到某一已知的正确状态(也称一致状态或完整状态),这是DBMS必须具有的功能。恢复子系统:DBMS的重要组成部分,会对系统的运行效率产生很大的影响。,7.3 故障的种类,事务内部的故障 系统故障 介质故障 计算机病毒,7.3 故障的种类,事务内部的故障 预期的:即可以通过事务程序本身发现例:银行转帐事务begin transactionread balance;balance = bal

5、ance amount;if (balance 0) then write(“not enough amount,cant betransfered”);rollback;elsewrite balance;read balance1;balance1 = balance1 + amount;write balance1;commit;,amount:转帐余额 balance:帐户1的余额 balance1:帐户2的余额,使用回滚操作来解决该故障,事务内部的故障 非预期的:不能通过事务程序发现: 运算溢出、并发事务发生死锁撤消事务破坏完整性等 使用事务撤销操作(undo)来解决该故障:强制回滚

6、。 系统故障 软故障(soft crash) 定义:指造成系统停止运转的任何事件,通常需要重新启动系统。如:特定的硬件故障、操作系统故障、DBMS故障等。危害:影响正在运行的所有事务,但不破坏数据库。 重启后的两类解决措施* 事务撤销(undo):适用所有未完成的事务。* 事务重做(redo):适用所有已提交的事务。,介质故障 硬故障(hard crash) 外存故障,如磁盘损坏、磁头碰撞等。 危害:破坏数据库或部分数据库,并影响正在使用这部分数据的所有事务。 计算机病毒 指一些具有破坏性的计算机程序,一般是人为的故障或破坏。,导致两类破坏:破坏数据库和影响事务的运行。 都需要通过一定的数据库

7、恢复技术来加以恢复。,7.4 恢复的实现技术,恢复的原理 冗余:数据库中任一部分的数据可以根据存储在系统别处的冗余数据来重建。 恢复的关键问题 如何建立冗余数据 如何利用这些冗余数据实施恢复 建立冗余数据的常用技术 数据转储 登录日志文件,数据转储 定义DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来。(后备副本、后援副本) 转储过程 正常运行 恢复,数据转储,数据转储,转储的策略 静态转储:无运行事务时进行的存储。优点:得到的一定是数据一致性的副本。缺点:事务和存储不能同时进行。 动态存储:转储期间允许对数据库进行存取和修改。优点:转储和用户事务可以并发进行。缺点:转储结束时不能保证后

8、援副本上的数据正确有效(一致性会存在问题)。,因此需要建立日志文件来记录转储期间各个事务的活动。,日志文件,后援副本,数据库恢复,数据转储,转储的方式 海量转储 每次转储全部数据库。 增量转储 每次只转储上一次转储之后更新过的数据。 数据转储方法,登记日志文件(Logging) 日志文件:是用来记录数据库更新活动的文件,由系统自动记录。 日志文件内容和格式 以记录为单位 登记内容:事务开始标记、结束标记、事务的所有更新操作。(每一部分都是一个日志记录) 日志记录的内容:事务标识、操作类型、操作对象、更新前的数据值、更新后的数据值。 以数据块为单位日志记录内容包括事务标识和被更新的数据块。,登记

9、日志文件,登记日志文件,日志文件的作用 进行事务故障恢复和系统故障恢复。 在动态转储方式中协助后援副本进行数据库的恢复。 静态转储方式下可用于对数据库进行进一步的恢复。 书上图7.2 登记日志文件 登记原则: 登记次序严格按照并发事务执行的时间顺序。 先写日志文件,再写数据库。,7.5 恢复策略,恢复的基本操作 UNDO:对夭折事务事务所做过的修改操作应执行undo操作,即撤消该操作,修改对象被赋予旧记录值。 REDO:对圆满事务所做过的修改操作应执行redo操作,即重新执行该操作,修改对象被赋予新记录值。, 针对不同的故障类型其恢复策略也不同。,7.5 恢复策略,事务故障的恢复 恢复操作 U

10、NDO 恢复步骤(系统自动执行) (1)反向扫描日志,查找该事务的更新操作。 (2)对事务的更新操作执行逆操作。 (3)继续反向扫描,找到该事务的其他更新操作,返回执行(2)。 (4)直到扫描到事务的开始标记,恢复过程结束。,7.5 恢复策略,系统故障恢复 恢复操作 UNDO、REDO 恢复步骤(系统重起时自动执行) (1)正向扫描日志文件,分理出需要重做(REDO)和需要撤销(UNDO)的事务。 (2)对需要进行撤销处理的事务进行撤销。 反向扫描日志文件,做UNDO; (3)对需要重做的事务进行重做。正向扫描日志文件,做REDO。,7.5 恢复策略,介质故障恢复 恢复操作 UNDO、REDO

11、 恢复步骤(DBA和DBMS共同完成) 重装数据库,恢复到最近一次转储时的一致性状态。 重做已完成的事务,恢复到故障前某一时刻的一致状态。 DBA重装最近转储的数据库副本和有关的日志文件副本执行系统的恢复命令 DBMS:自动完成数据库的恢复。,7.6 具有检查点的恢复技术,日志技术的缺陷: 需要搜索整个日志文件耗费较长的时间 要REDO一些已完成的事务也浪费一定的时间 解决的方法:增加检查点、重新开始文件 检查点记录的内容: 正在执行的事务清单 这些事务最近一个日志记录的地址,7.6 具有检查点的恢复技术,使用检查点技术的方法: 周期性:建立检查点、保存数据库状态;(1) 将日志缓冲中的所有日

12、志磁盘上的日志文件;(2) 在日志文件中写入检查点记录;(3) 将数据缓冲中的数据记录写入磁盘中的数据库;(4) 在重新开始文件中写入检查点记录的地址,带有检查点的恢复策略,Tc(检查点),Tf(系统故障),T1,T2,T3,T4,T5,不要redo,redo,redo,undo,undo,T1在检查点之前提交,不必redo。T2、T4在检查点之后故障点前提交,数据尚在缓冲区,需要redo。T3、T5在故障发生时还未完成,需要undo。,使用检查点的恢复步骤 找到最近一次的检查点。 由检查点记录获取正在执行的事务清单,建立两个事务队列undo_list、redo_list,分别存放执行undo操作和redo操作的事务,检查点时刻正在执行的事务暂时置于undo_list。 从检查点开始正向扫描日志文件。 若有新开始的事务暂时放入undo_list。 若有提交的事务,则从undo_list移入若redo_list 。 对两个队列中的事务执行相应的恢复操作。,7.7 数据库镜像,对介质故障的处理 DBA周期性的转储数据库:手工完成 改进 DBMS根据DBA的要求自动完成 一般的方法 对数据库的关键数据和日志文件进行复制 另外的用处 用于多用户的并发操作,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报