设为首页 收藏本站
查看: 1154|回复: 6

[经验分享] Oracle 锁工作原理

[复制链接]
累计签到:77 天
连续签到:1 天
发表于 2013-3-1 09:18:02 | 显示全部楼层 |阅读模式
三种现象:
  • 胀读取:一个事物读取了被其他事物写入但未提交的数据
  • 不可重复读取:一个事物再次读取曾经读取过,发现数据已经被其他已经提交的事物修改或者删除
  • 不存在读取:事物按照之前查询条件重新查询,返回的结果集中包含其他已提交事务插入满足条件的新数据

SQL92标准的隔离级别
  • 未提交读取
  • 已提交读取
  • 不可重复读取
  • 串行化


          现象脏读取不可重复读取不存在读取
隔离级别

未提交读取(read uncommitted)允许允许允许
已提交读取(read committed)不允许允许允许
可重复读取(repeatable read)不允许不允许允许
串行化(rerializable)不允许不允许不允许


Oracle支持事务隔离级别
已提交读取:
串行化:串行化隔离的事务只能看到事务执行前就已经提交数据,以及事务内Insert、Update、及delete语句对数据的修改。串行化隔离的事务不会出现不可重复读取或不存在的读取的现象
只读模式:只读事务只能看到事务执行前就已经提交的数据,且事务中不能执行Insert、Update及Delete语句

set transaction isolation level read commited
set transaction isolation level serializable
set transaction read only
脏数据就是读到database buffer cache做了修改但还没有写到datafile里面的数据,只要没有写入数据文件,不管是否提交,都可以称为脏数据。


锁:是防止访问相同资源的事务产生破坏性交互的机制


锁模式:
排他锁:能够阻止共享被加锁的资源。对数据进行修改时必须获得此种模式的锁。第一个排他地对资源加锁的事务是唯一可以对此资源进行修改的事务,直至排他锁被释放
共享锁:依据操作类型有条件地允许共享被加锁的资源。对数据进行读取的多个用户可共享此数据,这些用户可以对资源加以共享锁,防止其他用户并发地修改此资源。多个事务可以对相同的资源加共享锁





描述

DML 锁(数据锁)
 
DML 的作用是保护数据。例如,表级锁(table lock)对整个表加锁,行级锁(row lock)则对选定的数据行加锁。
 
DDL 锁(数据字典锁)
 
DDL 锁的作用是保护方案对象的结构。例如,表及视图的定义。
 
内部锁(internal lock)及闩锁(latch)
 
内部锁及闩锁用于保护数据库的内部结构,例如,数据文件。内部锁及闩锁的管理完全由 Oracle 自动完成。
 


行共享表级锁(row share table lock  RS):表明拥有此锁的事务已锁定了表内的某些数据行,并有意对数据进行更新操作
SELECT....FROM table ....FOR UPDATE OF ......
LOCK TABLE table  IN ROW SHARE MODE
允许操作:某个事务拥有了某个表的行共享表级锁后,其他事务依然可以并发地对相同数据表执行查询,插入,更新,删除操作,或对表内数据行加锁的操作。也就是说,其他事务同时也能获得相同表上的行共享锁,行排他共享,及共享行排他模式的表级锁。
禁止操作:某个事务拥有了某个表的行共享表级锁后,只会禁止其他事务通过以下语句排他对相同表进行写操作。LOCK TABLE table IN EXCLUSIVE MODE;

行排他表级锁(row exclusive table lock   RX):通常表面拥有此锁 的事务已经对表内的某些数据进行了更新操作。
INSERT INTO table.....
UPDATE table.....
DELETE FROM table.....
LOCK TABLE table IN ROW EXCLUSIVE MODE;
允许操作:某个事务拥有了某个表的行排他表级锁后,其他事务依然可以并发地对相同数据表执行查询,插入,更新,删除操作,或对表内数据行加锁操作。即行排他表级锁允许其他多个事务同时获得相同表上的行共享表级锁或行排他表级锁
禁止操作:某个事务拥有了某个表的行排他表级锁后,将禁止其他事务手工地对表加锁进行排他地读写操作,因此其他语句不能对相同表加锁
LOCK TABLE table IN SHARE MODE;
LOCK TABLE table IN SHAE EXCLUSIVE MODE
LOCK TABLE table IN EXCLUSIVE MODE;

共享锁(share table lock   S):LOCK TABE table IN SHAE MODE
允许操作:某个事务拥有了某个表的共享表级锁后,其他事务可以查询表,可以使用select ......for update 语句锁定选中的数据行,也能够成功执行LOCK TABLE .......IN SHARE MODE 语句。但其他事务不能对表进行更新操作。多个事务可以并发地获得同一个表上的共享表级锁,在此种情况下任何事务都不能对表进行更新。因此,拥有共享表级锁的事务只能在此表上没有其他事务的共享表级锁时,才能对表进行更新操作
禁止操作:某个事务拥有了某个表的共享级锁后,将禁止其他事务修改此表,同时禁止其他事务执行以下语句
LOCK TABLE table IN ROW EXCLUSIVE MODE
LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;
LOCK TABLE table IN EXCLUSIVE MODE;

共享行排他表级锁(share row exclusive table lock SRX):LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;
允许操作:同一时间只有一个事务 能够获得表的共享行排他表级锁,某个事务拥有了某个表的共享行排他表级锁后,其他事务可以查询表,可以使用select ....for update 语句锁定选中的数据行,当不能对表进行更新操作
禁止操作:拥有共享行排他表级锁的事务将阻止其他事务获取行排他表级锁来修改数据,共享行排他表级锁还能阻止其他事务在相同表上获取共享表锁,共享行排他表级锁及排他表级锁
LOCK TABLE table IN ROW EXCLUSIVE MODE;
LOCK TABLE table IN SHARE MODE;
LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;
LOCK TABLE table IN EXCLUSIVE MODE;

排他表级锁(exclusive table lock  X):LOCK TABLE table IN EXCLUSIVE MODE;
允许操作:同一时间只有一个事务能获得表上的排他表级锁。一个事务获得表级锁后,其他事务只能对表进行查询操作
禁止操作:一个事务获得排他表级锁后,将禁止其他事务对表执行任何DML操作,其他事务无法获取表上任何类型的锁




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-3258-1-1.html 上篇帖子: Oracle表空间管理 下篇帖子: Oracle零碎要点---多表联合查询,收集数据库基本资料 工作原理 Oracle

尚未签到

发表于 2013-3-18 13:28:08 | 显示全部楼层
我是来刷分的,嘿嘿

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 06:47:11 | 显示全部楼层
不知该说些什么。。。。。。就是谢谢

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-21 08:58:46 | 显示全部楼层
床上运动也可以减肥的,你们都不知道吗?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-27 04:12:07 | 显示全部楼层
不在课堂上沉睡,就在酒桌上埋醉。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-4 07:59:35 | 显示全部楼层
所有的男人生来平等,结婚的除外。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-8 10:44:42 | 显示全部楼层
.其实我是一个天才,可惜天妒英才!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表