第7章数据库恢复技术.ppt.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
An Introduction to Database System 学习目标 掌握事务的概念和性质 理解数据库故障的三种类型 掌握数据库恢复的技术 掌握数据库恢复的策略 了解具有检查点的数据库恢复技术 了解数据库镜像 掌握SQL Server的恢复技术 7.1 事务的概念 数据库系统中的数据是由DBMS统一管理和控制的,为了适应数据共享的环境,DBMS必须提供数据保护能力,以保证数据库中数据的安全可靠和正确有效。数据库保护包括数据库恢复、安全性、完整性和并发控制四大技术。 事务(transaction):用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。事务不同于程序,一个程序通常包含多个事务。事务是数据库恢复和并发控制的基本单位。如从A帐户转帐到B帐户100元的过程是一个事务,该事务包括了两个更新操作:A=A-100,B=B+100,这两个操作不可分割:要么全做,要么全不做。 事务的开始与结束可以由用户显式控制,如果没有显式地定义事务,则由DBMS按缺省规定自动地划分事务。显式定义为: Begin Transction Begin Transction ………… 或 ………… Commit RollBack 其中, Begin Transction表示事务的开始, Commit为事务提交,即告诉事务管理器事务中的所有操作都已完成,数据库处于另一个一致性状态;而RollBack为事务回滚,即告诉事务管理器事务执行时发生故障,所有已完成的操作必须全部撤销,滚回到事务开始的状态。这里的操作指对数据库的更新操作。 事务的性质:事务具有ACID特性。 原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 一致性(Consistency):事务的执行必须保证数据库从一个一致性状态转到另一个一致性状态。 隔离性(Isolation):一个事务的执行不能被其他事务干扰,并发执行的各个事务间应互相独立。 持久性(Durability):事务一旦提交,它对数据库中数据的改变应是永久的。 例:T1事务表示A转帐100元到B, T2事务表示从A中取100元 保证事务ACID特性是事务处理的任务。事务ACID特性可能遭到破坏的因素有: 多个事务并行运行时,不同事务的操作交叉执行。 事务在运行过程中被强行停止。 7.2 数据库恢复概述 由于计算机系统中硬件故障、软件错误、操作员失误以及恶意破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库的正确性,重则破坏数据库,使数据库全部或部分数据丢失。DBMS必须具有把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复。 恢复子系统是DBMS的一个重要组成部分,保证故障发生后能把数据库中的数据从错误状态恢复到某一已知的正确状态,保证事务ACID。恢复技术是衡量系统优劣的重要指标。 7.3 故障的种类 事务故障:某个事务在运行过程中由于种种原因未运行至正常结束点就夭折了,造成数据库可能处于不正确状态。 事务故障的原因:违反了某些完整性限制、输入数据有误、运算溢出、并行事务发生死锁等。 事务故障的分类 可预期的:应用程序可以发现的故障,如违反了某些完整性限制、输入数据有误等,可由应用程序处理。 不可预期的:应用程序无法发现的故障,如运算溢出、发生死锁等,应用程序无法处理此类故障,由系统进行处理。 事务故障的恢复:发生事务故障时夭折的事务可能已将对数据库的部分修改写回磁盘,恢复子系统一般采用回滚(RollBack),强行撤销(UNDO)该事务对数据库的所有修改,使得这个事务象根本没有启动过一样。 系统故障(软故障):指造成系统停止运转的任何事件,使得系统要重新启动。这类故障影响所有正在运行的事务,但不破坏整个数据库。这时内存数据丢失,所有运行事务都异常终止。 系统故障的原因:特定类型的硬件错误(如CPU故障)、操作系统故障、DBMS代码错误、突然停电等。 系统故障的恢复: 一方面,发生系统故障时,一些尚未完成的事务可能已将部分更新操作写回数据库,使数据库处于不正确状态,所以恢复子系统在系统重启时必须让所有非正常终止的事务回滚,强行撤销(UNDO)所有未完成事务。 另一方面,发生系统故障时,有些已完成事务可能部分甚至全部留在缓冲区,尚未写回磁盘,系统故障使得这些事务对数据库的修改部分或全部丢失,数据库处于不一致状态,因此恢复子系统在系统重启时,

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档