Oracle中的锁(LOCK)机制

  次阅读 来源:互联网(转载协议) 2016-01-28 13:09 我要评论(0)

本文结合示例简要的介绍了一下Oracle中锁的机制。

使用锁的目的是什么

为了解决多用户环境下并发操作相同的资源而造成的错误修改数据的问题。单用户环境下不需要考虑锁,因为所有操作都是串行的。下面的文章简要的介绍了一下

要点

锁的分类异常复杂,enqueue、latch、mutex等,都是为了解决并发存在的,自己也有些混乱,所以也不过多解释了。下面列举一些对于lock的要点内容。

l 排他锁:

不允许相关的资源被共享。一个资源在一个时间点内只有一个事务能够获取该资源的排他锁,只有持有该锁的事务能够修改相关的资源,

其他想要获取锁的事务只能等待该事务因为commit或者rollback而释放排他锁。

l 共享锁:

允许相关的资源被共享。也就是说允许多个事务同时持有某个资源的共享锁。

对于一个dml操作,会对表以及行加锁,也就是v$lock中的TM锁和TX锁。

l 行级锁基本原理:

行级锁的信息是置于数据块中的,如果要修改某一条记录的值,其实就是在访问相应的block,并且分配一个ITL,然后通过rowid访问

rowpiece header ,如果第二个字节lock byte(lock byte只占用1个字节,最大值为255,这也是为什么maxtrans最大为255)为0,则将其改为分配的ITL slot number。另外一个事务如果也想要修改数据,就会发现lock byte不为0,如果第一个事务还没有结束,则第二个事务进入enqueue等待,也就是transaction enqueue。

关于transaction enqueue有一个很有趣的例子,事务不一定是按照时间的先后顺序进行的。

具体地址在:

http://docs.oracle.com/cd/E11882_01/server.112/e25789/transact.htm#autoId12

l 对于Table lock来说可以分为以下几种类型:

1. Row Share (RS|SS)

2. Row Exclusive Table Lock (RX|SX)

3. Share Table Lock (S)

4. Share Row Exclusive Table Lock (SRX|SSX)

5. Exclusive Table Lock (X)

以下是v$lock.LMODE字段中的数字对应的锁类型

LMODE(Lockmode in which the session holds the lock):

0 -none

1 -null (NULL)

2 -row-S (SS)

3 -row-X (SX)

4 -share (S)

5 -S/Row-X (SSX)

6 -exclusive (X)

为了更好的开展下面的内容,这里列举一下各种TM锁类型的兼容情况。

详细验证情况会在4中给出。

表1

RS|SS

RX|SX

S

SRX|SSX

X

RS|SS

×

RX|SX

×

×

×

S

×

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...