- 1、本文档共98页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章数据库保护祥解.ppt
* 事务是数据库进行并发控制的基本单位,多个事务的并发调度会带来一些问题,如丢失更新、不一致分析和未提交依赖等问题,从而影响并发调度的正确性。解决这些问题的方法是封锁,封锁又分为排它锁和共享锁。在利用封锁进行并发控制时须遵循一定的封锁协议。另外,在封锁的过程中,还会发生活锁和死锁现象。 数据库系统在运行过程中还会遇到各种故障,常见的故障类型有事务故障、系统故障和介质故障,本章分析了故障产生的原因和故障恢复的技术。 ? 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * * X锁 S锁 一致性保证 操作结束释放 事务结束释放 操作结束释放 事务结束释放 不丢失修改 不读脏数据 可重复读 一级封锁协议 √ √ 二级封锁协议 √ √ √ √ 三级封锁协议 √ √ √ √ √ 不同级别的封锁协议 * 3.活锁和死锁 ⑴ 活锁 ⑵ 死锁 ⑶ 死锁预防 ⑷ 死锁检测 ⑸ 死锁恢复 ? * ⑴ 活锁 在多个事务并发执行的过程中,可能会存在某个尽管总有机会获得锁的事务却永远也没得到锁,这种现象称为活锁。 采用“先来先服务”的策略可以预防活锁的发生。 ? * ⑵ 死锁 即多个并发事务处于相互等待的状态,其中的每一个事务都在等待它们中的另一个事务释放封锁,这样才可以继续执行下去,但任何一个事务都没有释放自己已获得的锁,也无法获得其它事务已拥有的锁,所以只好相互等待下去。 例:死锁的情形如下图所示。 ? * ⑶ 死锁预防 DB中预防死锁的两种方法 第一种方法(一次封锁法):要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预先约定的加锁顺序对使用到的数据加锁。 第二种方法(顺序封锁法):每当处于等待状态的事务有可能导致死锁时,就不再等待下去,强行回滚该事务。 ?? * 采用两种方法来解决并发调度中的死锁问题。 ? * ⑷ 死锁检测 利用“事务依赖图” 方法(如下图所示),进行死锁的检测。其中,每个结点表示事务,带箭头的线表示事务间的依赖关系。 例:结点T1和T2之间的连线就表示事务T1所需要的数据对象W已被事务T2封锁,其它的连线分别表示事务T2所需要的数据对象X已被事务T3封锁,事务T3所需要的数据对象Y已被事务T4封锁,事务T4所需要的数据对象Z已被事务T1封锁,这样图中的4个事务之间就存在着相互等待的问题,表明死锁发生了,图中沿箭头方向形成了一个回路。 因此,只要检测事务依赖图中有无回路就可以判断是否发生了死锁。 ? * ⑸ 死锁恢复 当系统中存在死锁时,一定要解除死锁。 方法:从发生死锁的事务中选择一个回滚代价最小的事务,将其彻底回滚,或回滚到可以解除死锁处,释放该事务所持有的锁,使其它的事务可以获得相应的锁而得以继续运行下去。 ? * 5.4 数据库恢复 5.4.1 故障的种类与恢复原理 5.4.2 故障恢复技术 5.4.3 故障恢复策略 ?? * 1.数据库系统的故障种类 ? 5.4.1 故障的种类与恢复原理 ⑴ 事务故障 事务故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理的。 事务故障可分为两种: ① 可以预期的事务故障,即在程序中可以预先估计到的错误 ② 非预期的事务故障,即在程序中发生的未估计到的错误 * 事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此,数据库可能处于不正确状态。恢复程序要在不影响其他事务运行的情况下,强行回滚(ROLLBACK)该事务,即撤销该事务已经做出的任何对数据库的修改,使得该事务好像根本没有启动一样。这类恢复操作称为事务撤销(UNDO)。 ? * ⑵ 系统故障 系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。为保证数据一致性,需要清除这些事务对数据库的所有修改。 ?? 恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤销(UNDO)所有未完成事务。 另一方面,发生系统故障时,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失,这也会使数据库处于不一致状态,因此应将这些事
您可能关注的文档
- 根及根茎类中药各论要点.ppt
- 第5章关税new祥解.ppt
- 第5章关税会计祥解.ppt
- 根及根茎类中药第三部分,要点.ppt
- 第5章关税法祥解.ppt
- 第5章其他行业成本计算11祥解.ppt
- 根及根茎类要点.ppt
- 第5章其他金融机构祥解.ppt
- 第5章典型零件图的绘制祥解.ppt
- 第5章出入库管理祥解.ppt
- 携程产品营销经理岗面试题库参考答案和答题要点.docx
- 携程产品经理岗面试题库参考答案和答题要点.docx
- 携程供应链管理专员岗面试题库参考答案和答题要点.docx
- 携程交易数据分析师岗面试题库参考答案和答题要点.docx
- 携程公共关系专员岗面试题库参考答案和答题要点.docx
- 携程内部培训专员岗面试题库参考答案和答题要点.docx
- 福建省福州市2023-2024学年高二上学期期末测试英语试卷(含答案).pdf
- 携程人力资源专员岗面试题库参考答案和答题要点.docx
- 福建省三明市2023-2024学年高二上学期期末测试英语试卷(含答案).docx
- 福建省三明市2023-2024学年高二上学期期末测试英语试卷(含答案).pdf
文档评论(0)