第6章_数据库的事务处理数据恢复.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章_数据库的事务处理数据恢复

(1)死锁的预防 2)顺序封锁法:预先对数据对象规定一个封锁顺序,所有的事务都按这个顺序实行封锁。 优点:可有效防止死锁 缺点:维护封锁顺序困难;封锁困难。 例如,规定数据对象的封锁顺序为A、B、C、D、E。事务T起初封锁数据对象B、C、E,但后来发现还需要封锁A,这就破坏了封锁顺序。 6.2.3 封锁出现的问题及解决方法 (2)死锁的检查与解除 并发控制子系统周期性地检测事务等待图,如果发现图中存在回路,则表示系统出现死锁。并发控制子系统通常选择一个处理死锁代价最小的事务,释放此事务持有的所有锁,使其他事务能继续运行下去。 6.2.3 封锁出现的问题及解决方法 6.2.4 可串行化调度 可串行化调度 对于并发操作,不同的调度顺序可能产生不同的结果。 如果多个事务并发执行的结果与按串行执行的结果相同,这种调度策略称为可串行化调度,反之,称为不可串行化调度。 可串行化调度是并发事务正确性的准则。 两段锁协议 第一阶段是获得封锁,也称为扩展阶段。在这个阶段,事务可以申请获得任何数据项上的任何类型的锁,但不能释放任何锁。 第二阶段是释放封锁,也称为收缩阶段。在这个阶段,事务可以释放任何数据项上的任何类型的锁,但是不能申请任何锁。 例如:事务1的封锁顺序遵守两段锁协议: SlockA… SlockB… XlockC… UnlockB… UnlockA… UnlockC… 事务2的封锁顺序破坏了两段锁协议: SlockA… UnlockA… SlockB… XlockC… UnlockC… UnlockB… 6.2.4 可串行化调度 Oracle的封锁机制 Oracle利用事务和封锁机制提供数据并发存取和数据完整性。 当对表执行修改、删除、插入等操作时,系统隐式开始事务。只有执行Commit或Rollback,事务才结束。 事务中的全部封锁在该事务提交或回滚时被释放。 可以显式对需要重复读的表进行封锁。 6.2.5 ORACLE的并发控制机制 Oracle的锁分为两大类: 数据锁(DML锁):用于保护数据的完整性。 Oracle的数据锁有5种:共享锁(S锁)、排它锁(X锁),行级共享锁(RS锁)、行级排它锁(RX锁)和共享行级排它锁(SRX锁),其封锁粒度包括行级和表级。 字典锁:用于保护数据库对象的结构(例如表、视图、索引的结构定义);字典锁由系统自动加锁或释放锁,用户无权控制。 6.2.5 ORACLE的并发控制机制 6.2.5 ORACLE的并发控制机制 数据锁 在通常情况下,数据锁由系统隐含完成,用户不用考虑封锁问题,但Oracle也允许用户用LOCK TABLE命令显式对封锁对象加锁。 Oracle数据库的一个显著特点是,在缺省情况下,单纯地读数据(SELECT)并不加锁。 封锁语法: LOCK TABLE 表名 IN 锁模式 解锁语法: COMMIT或ROLLBACK 6.2.5 ORACLE的并发控制机制 数据锁模式 共享锁(S锁) LOCK TABLE 表名 IN SHARE MODE 当一事务在表级上获得共享锁,则允许其他事务在该表上做查询、用SELECT …FOR UPDATE 封锁指定行或执行S、RS封锁。禁止其他事务执行X、RX封锁。 当一表上有多个事务持S锁,则事务在该表上不能执行插入、修改或删除操作。 6.2.5 ORACLE的并发控制机制 数据锁模式 排它锁(X锁) LOCK TABLE 表名 IN EXCLUSIVE MODE 当一事务在表上获得排它锁,仅允许其他事务在该表上查询,禁止执行插入、删除、更新操作。 禁止其他事务对该表进行任何封锁。 6.2.5 ORACLE的并发控制机制 数据锁模式 行级共享锁(RS锁) LOCK TABLE 表名 IN ROW SHARE MODE 当一事务在一表上获得行级共享锁,允许其他事务并行查询、插入、修改、删除或在该表上进行行RS、RX、S、SRX封锁。禁止X锁。 当事务执行SELECT * FROM 表名 FOR UPDATE时,该事务自动获得RS锁。 6.2.5 ORACLE的并发控制机制 数据锁模式 行级排它锁(RX锁) LOCK TABLE 表名 IN ROW EXCLUSIVE MODE 当一事务在一表持有RX锁时,允许其他事务并行查询、插入、修改、删除同一表中的行或对该表执行RS、RX封锁。 当事务执行INSERT、UPDATE、DELETE语句时,该事务自动获得RX锁。 6.2.5 ORACLE的并发控制机制 数据锁模式 共享行级排它锁(SRX锁) LOCK TABLE 表名 IN SHARE ROW EXCLUSIVE M

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档