下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Oracle数据库封锁方式有三种:共享封锁,独占封锁,共享更新封锁 设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性。 b: 8f4f63b9bb封锁类型/b: 8f4f63b9bb Oracle RDBMS勺封锁类型可分为如下三类: 1、内部级封锁 内部级封锁是用于保护ORACLE八部结构,由系统内部实现,用户不能访问,因此我们不必对此做过多的了解。 2、DDL级封锁(字典/语法分析封锁) DDL级封锁也是由ORACLE RDBMS来控制,它用于保护数据字典和数据定义改变时的一致性和完整性。它是系统在对SQL定义语句作语法分析时自动地加锁,无需用户干予。字
2、典/语法 分析封锁共分三类: (1) 、字典操作锁:用于对字典操作时,锁住数据字典,此封锁是独占的,从而保护任何一个时刻仅能对一个字典操作。 (2) 、字典定义锁:用于防止在进行字典操作时又进行语法分析,这样可以避免在查询字典的同时改动某个表的结构。 (3) 、表定义锁:用于一个SQL语句正当访问某个表时,防止字典中与该表有关的项目被修改。 3、DML级封锁 DML级封锁用于控制并发事务中的数据操纵,保证数据的一致性和完整性,其封锁对象可以是表或行。 对用户的数据操纵,Oracle可以自动为操纵的数据进行封锁,但如果有操纵授权,则为满足并发操纵的需要另外实施封锁。DM哇寸锁可由一个用户进程以显
3、式的方式加锁,也可通过某 些SQL语句隐含方式实现。 DML锁有如下三种封锁方式: (1) 、共享封锁方式(SHARE (2) 、独占封锁方式(EXCLUSIVE (3) 、共享更新封锁(SHARE UP DATE 其中SHARE EXCLUSIVE用于表封锁,SHARE UP DAT用于行封锁。 1、共享方式的表封锁 共享方式的表封锁是对表中的所有数据进行封锁,该锁用于保护查询数据的一致性,防止其它用户对已封锁的表进行更更新。其它用户只能对该表再施加共享方式的锁,而不能再对该表施加独占方 式的封锁,共享更新锁可以再施加,但不允许持有共享更新封锁的进程做更新。共享该表的所有用户只能查询表中的数
4、据,但不能更新。共享方式的表封锁只能由用户用 SQL语句来设置,基语句格式如下: quote :04b72348bd LOCK TABLE表名,表名 IN SHARE MODE NOWAIT /quote:04b72348bd 执行该语句,对一个或多个表施加共享方式的表封锁。当指定了选择项NOWAIT若该封锁暂时不能施加成功,则返回并由用户决定是进行等待,还是先去执行别的语句。 持有共享锁的事务,在出现如下之一的条件时,便释放其共享锁: A、执行 COMMIT ROLLBACKS 句。 B、退出数据库(LOG OFF)。 C程序停止运行。 共享方式表封锁常用于一致性查询过程,即在查询数据期间表
5、中的数据不发生改变。 2、独占方式表封锁 独占方式表封锁是用于封锁表中的所有数据,拥有该独占方式表封锁的用户,即可以查询该表,又可以更新该表,其它的用户不能再对该表施加任何封锁(包括共享、独占或共享更新封锁)。其它 用户虽然不能更新该表,但可以查询该表。 独占方式的表封锁可通过如下的SQL语句来显示地获得: LOCK TABLE表名 ,表名 IN EXCLUSIVE MODE NOWAIT 独占方式的表封锁也可以在用户执行DML语句INSERT UP DATE DELETE寸隐含获得。 拥有独占方式表封锁的事务,在出现如下条件之一时,便释放该封锁: (1) 、执行 COMMIT 或 ROLLB
6、ACKS 句。 (2) 、退出数据库(LOG OFF (3) 、程序停止运行。 独占方式封锁通常用于更新数据,当某个更新事务涉及多个表时,可减少发生死锁。 DML锁有如下三种封锁方式: (1) 、共享封锁方式(SHARE (2) 、独占封锁方式(EXCLUSIVE 、共享更新封锁(SHARE UP DATE 其中SHARE EXCLUSIVE用 于表封锁,SHARE UP DAT用 于行封锁。 1、共享方式的表封锁 共享方式的表封锁是对表中的所有数据进行封锁,该锁用于保护查询数据的一致性,防止其它用户对已封锁的表进行更更新。其它用户只能对该表再施加共享方式的锁,而不能再对该表施加独占方式的封锁
7、,共享更新锁 可以再施加,但不允许持有共享更新封锁的进程做更新。共享该表的所有用户只能查询表中的数据,但不能更新。共享方式的表封锁只能由用户用 SQL语句来设置,基语句格式如下: quote:04b72348bdLOCK TABLE表名 ,表名 IN SHARE MODE NOWAIT /quote:04b72348bd 执行该语句,对一个或多个表施加共享方式的表封锁。当指定了选择项NOWAIT若该封锁暂时不能施加成功,则返回并由用户决定是进行等待,还是先去执行别的语句。 持有共享锁的事务,在出现如下之一的条件时,便释放其共享锁: A、执行 COMMIT八 ROLLBACKS 句。 B、退出数
8、据库(LOG OFF)o C程序停止运行。 共享方式表封锁常用于一致性查询过程,即在查询数据期间表中的数据不发生改变。 2、独占方式表封锁 独占方式表封锁是用于封锁表中的所有数据,拥有该独占方式表封锁的用户,即可以查询该表,又可以更新该表,其它的用户不能再对该表施加任何封锁(包括共享、独占或共享更新封锁)。其它用户虽然不能更新该表, 但可以查询该表。 独占方式的表封锁可通过如下的SQL语句来显示地获得: LOCK TABLE表名 ,表名 IN EXCLUSIVE MODE NOWAIT 独占方式的表封锁也可以在用户执行DML语句INSERT UP DATE DELETE寸隐含获得。 拥有独占方
9、式表封锁的事务,在出现如下条件之一时,便释放该封锁: 、执行 COMMIT 或 ROLLBACKS 句。 (2) 、退出数据库(LOG OFF (3) 、程序停止运行。 独占方式封锁通常用于更新数据,当某个更新事务涉及多个表时,可减少发生死锁。 3、共享更新圭寸锁方式 共享更新封锁是对一个表的一行或多行进行封锁,因而也称作行级封锁。表级封锁虽然保证了数据的一致性,但却减弱了操作数据的并行性。行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不被其它用户 所修改。因而行级锁即可保证数据的一致性又能提高数据操作的迸发性。 可通过如下的两种方式来获得行级封锁: (1) 、执行如下的SQL封锁语
10、句,以显示的方式获得: LOCK TABLE表名 ,表名 IN SHARE UP DATE MODE NOWAIT (2) 、用如下的SELECT . FOR UP DATE语句获得: SELECT列名 ,列名 FROM表名 WHERE条件 FOR UP DATE OF 列名 ,列名 NOWAIT 一旦用户对某个行施加了行级封锁,则该用户可以查询也可以更新被封锁的数据行,其它用户只能查询但不能更新被封锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个 表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式封锁表,一直
11、到提交或复原该事务为止。 行锁永远是独占方式锁。 当出现如下之一的条件,便释放共享更新锁: (1) 、执行提交(COMMI)语句; (2) 、退出数据库(LOG OFF (3)、程序停止运行。 执行ROLLBAC操作不能释放行锁。 从上而讲述可见,ORACLE RDBMS勺加锁机制,解决了并发事务的相容与互斥问题。相容保证事务的并发性,互斥确保数据的一致性。不同用户锁的相容与互斥关系由下图给出。 其中最后一行最后一列为其它用户提供在不同行上设置SHARE UP DAT锁。但当用户1在某行上进行更新操作时,用户2只有等待用户1提交事务后,才能更新自己所封锁的行。 中最后一行最后一列为其它用户提供
12、在不同行上设置SHARE UP DAT锁。但当用户1在某行上进行更新操作时,用户2只有等待用户1提交事务后,才能更新自己所封锁的行。 用户2操作 用户1加锁 SHAREr EXCLUSIVE*- SHARE UPDATE八 a SHARE锁 N. N. 加 EXCLUSIVE 锁 Nj N - 7* 加 SHARE UPDATE 赖 W Y+ S询厂 Y+: Y* 更新数据 阶 j a:Y代表可以N代表不可从卜 死锁 封锁虽然能够有效的解决并发操作,但是任何资源的独占都会有死锁的危险。例如:有两个事务Tl, T2, T1对数据A施加独占封锁,T2对数据B施加了独占封锁。再假设T1要对 数据B加锁,由于B己被T2独占封锁,因此T1置于等待状态,等待B被释放;现在若T2也要对A进行封锁,由于A己被T1独占封锁,因此T2也被置于等待状态。这样就形成了两个 事务相互等待的状态,而且永远不能结束,此种情况称为死锁。 在0racle系统中能自动发现死锁,并选择代价最小的,即完成工作量最少的事务予以撤消,释放该事务所拥有的全部锁,记其它的事务继续工作下去。 从系统性能上考虑,应该尽可能减少资源竞争,增大吞吐量,因此用户在给并发操作加锁时,应注意以下几点:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电动车安全主题培训心得课件
- 2025-2030家用电器制造领域批发零售分析投资前景研究情况汇报
- 2025-2030家用洗衣机行业市场供需分析及投资评估规划分析研究报告
- 2025-2030家庭医生签约服务行业市场现状分析及政府监管政策研究规划
- 2025-2030家居行业投资现状分析及融资布局策略研究报告
- 企业协同办公信息系统方案
- 企业市场扩展战略与执行方案
- 常用歌曲《遇见》歌词
- 2026年桥梁设计中的环境因素优化
- 2026年电气传动效率提升方法研究
- 北京市平谷区政务服务中心综合工作人员招聘笔试备考题库及答案解析
- 2026年高级会计师面试题及答案解析
- 湖南省邵阳市2025-2026学年高二历史上学期期末模拟卷(试卷及全解全析)
- (2025版)腹膜后肿瘤诊治专家共识课件
- 基因编辑真菌鉴定
- 转让钓场合同协议书
- 温泉洗浴行业分析报告
- 《数据管理能力成熟度模型》DCMM评估内容及流程
- 一年级语文上册测试题命制与批改标准
- 海外安保培训核心科目
- 多胎肉羊养殖培训课件
评论
0/150
提交评论