- 1、本文档共89页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 1.封锁及锁的类型 所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集、以至整个数据库)进行操作之前,必须获得相应的锁,以保证数据操作的正确性和一致性。 封锁的3个环节:申请加锁,获得锁,释放锁。 基本的封锁类型有2种:排它锁(Exclusive Locks,也称X锁)和共享锁(Share Locks,也称S锁)。 6.4.3 封锁 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * ①排它锁(Exclusive Lock) 排它锁又称写锁,简称为X锁,其采用的原理是禁止并发操作。 当事务T对某个数据对象R实现X封锁后,其他事务要等T解除X封锁以后,才能对R进行封锁。这就保证了其他事务在T释放R上的锁之前,不能再对R进行操作。 ② 共享锁(Share Lock) 共享锁又称读锁,,简称为S锁,其采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。 当事务T对某个数据对象R实现S封锁后,其他事务只能对R加S锁,而不能加X锁,直到T释放R上的S锁。 这就保证了其他事务在T释放R上的S锁之前,只能读取R,而不能再对R作任何修改。 基本的封锁类型 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * 封锁可以保证合理的进行并发控制,保证数据的一致性。 实际上,锁是一个控制块,其中包括被加锁记录的标识符及持有锁的事务的标识符等。 在封锁时,要考虑一定的封锁规则,例如,何时开始封锁、封锁多长时间、何时释放等,这些封锁规则称为封锁协议。 对封锁方式规定不同的规则,就形成了各种不同的封锁协议。 封锁协议在不同程序上对正确控制并发操作提供了一定的保证。 上面讲述过的并发操作所带来的丢失更新、污读和不可重读等到数据不一致性问题,可以通过三级封锁协议在不同程度上给予解决,下面介绍三级封锁协议。 2 .锁协议(Lock Protocol) Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * (2)日志文件的作用 ① 事务故障恢复和系统故障必须用日志文件。 ② 在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库。 ③ 在静态转储方式中,也可以建立日志文件。当数据库被毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务就可把数据库恢复到故障前某一时刻的正确状态。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * (3)登记日志文件的原则 登记的次序严格按并发事务执行的时间次序。 必须先写日志文件,后写数据库。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * 3.恢复策略 数据库系统在运行中发生故障后,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库。 这时数据库就处于一种不正确的状态,或者说是不一致的状态,这时可利用日志文件和数据库转储的后备副本将数据库恢复到故障前的某个一致性状态。 根据故障类型的不同,应该采取不同的恢复策略。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * 事务故障是指事务在运行至正常终止点前被终止,这时恢复子系统应利用日志文件撤销(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤如下。 ① 反向扫描文件日志(即从最后向前扫描日志文件),查找
文档评论(0)