网站大量收购闲置独家精品文档,联系QQ:2885784924

06-1数据库系统的恢复和并发控制技术概论.ppt

06-1数据库系统的恢复和并发控制技术概论.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
06-1数据库系统的恢复和并发控制技术概论

6 数据库保护 数据库恢复 并发控制 数据库安全性 数据库完整性 事务:是一个不可分割的操作序列,该操作序列要么全做,要么全不做。 强调:事务和程序是两个概念。 一个程序中可以包含多个事务。 事务是恢复和并发控制的基本单位 隐式控制:由DBMS按缺省规定自动划分。 显式控制: BEGIN TRANSACTION [事务开始] COMMIT [事务提交,重新改写数据库] ROLLBACK [事务提交,发生错误撤消] BEGIN TRANSACTION DELETE FROM S WHERE S#=‘10002’ DELETE FROM SC WHERE S#=‘10002’ ROLLBACK 1、原子性(Atomicity) 事务是不可分割的工作单位 2、一致性(Consistency) 事务提交后,数据库从一个一致性状态变到另一个一致性状态。 3、隔离性(Isolation) 在事务完成之前,它对数据库产生的结果不能被其它事务引用。 4、持续性(Durability) 一旦事务执行成功(提交),其对数据库产生的效果永久有效。 数据库的恢复: 把数据库从错误状态恢复到某一已知的正确状态。 1.事务故障 是事务内部的故障。 预期故障: 通过在程序中加判断条件来实现 非预期的故障: 如由于死锁而被迫撤销的事务等 2.系统故障 (需要系统重新启动) 原因:硬件错误、操作系统故障、DBMS代码错误、突然停电等。 特点:故障影响正在运行的所有事务,但不破坏数据库。可能会造成数据库中数据的不一致性。其原因: 故障发生时,尚未完成的事务的结果可能已送入到物理数据库。 故障发生时,有些已完成的事务所做的数据更改还在缓冲区中,尚未写到物理数据库中。 3.介质故障 是指存储数据库的磁盘发生故障。 原因:可能是磁盘损坏、磁头碰撞、瞬时强磁场干扰等。 特点:使数据库受到破环。虽然可能性小,但破坏性最大。 两个关键问题: 1 如何建立冗余数据 2 如何利用这些冗余数据实施数据库恢复 1、数据转储 转储:定期将DB复制到其它外存保存(副本) 1、转储类型 静态转储:在系统空闲的时候进行,转储期间不允许对数据库进行操作。 优点:简单、保证副本和数据库数据的一致性。 缺点:需等待。 动态转储:转储期间允许对数据库进行操作。 优点:效率高。 缺点:不能保证副本和数据库数据的一致性。 2、转储方式 海量转储:每次转储数据库中的全部数据 增量转储:每次转储上一次转储后更新过的数据 3、数据库镜像:自动将数据库中的全部数据或关键数据复制到另外一张盘上。 2、日志文件 1、内容 事务标识(标明是哪个事务) 操作类型及对象(插入、删除、修改,记录内部标识) 更新前后的值 2、作用: 用于数据库恢复 3、登记要求 按时间次序 先写日志文件,后写数据库。 1、事务故障的恢复 恢复策略:反向扫描日志文件,将日志中更新前的数据写回到数据库中,直至事务的开始标志。 2、系统故障的恢复 恢复策略:撤销故障发生时未完成的事务,重做已完成的事务。 方法:扫描日志文件;找出故障发生前提交的事务,让该事务重做(REDO);找出故障发生前未提交的事务,让其撤销(UNDO)。 例:银行中,C账户上原有存款500元,现有两位顾客同时给此账户存款,分别运行下面两个事务: T1:READ(C), C=C+100,WRITE(C); T2:READ(C), C=C+200,WRITE(C); 运行过程可能如下: (1)先执行事务T1,然后执行事务T2 (2)先执行事务T2,然后执行事务T1 (3)事务T1和事务T2并发执行 封锁 *排它锁(写锁,简称X锁) *共享锁(读锁,简称S锁) 封锁协议 1、封锁: 就是事务T在对数据进行操作之前,先向系统申请对其进行加锁,此时不允许其它事务更新该数据,直到事务T释放该数据上的锁。 2、封锁的类型 排它锁(又称写锁,简称X锁) 若事务T对数据对象A加上X锁,则其它事务不能在A上加任何类型的锁,此时,只允许事务T读取和修改A,直到T释放A上的锁。 共享锁(又称读锁,简称S锁) 若事务T对数据对象A加上S锁,则其它事务也可在A上加S锁,但不能加X锁,事务T和其它事务只能读取A,但不能修改A。 3、封锁协议 1)一级封锁协议 事务T在修改数据A之前必须先对其加X锁,直到

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档