Oracle锁机制详解

v$transaction 视图

第一个视图是v$transaction,就是Oracle数据库所有活动的事务数,所有活动的事务每一个活动的事务在这里有一行。

  • XIDUSN表示当前事务使用的回滚段的编号
  • XIDSLOT说明该事务在回滚段头部的事务表中对应的记录编号(也可以叫做槽号)
  • XIDSQN说明序列号
  • STATUS说明该事务是否为活动的

XIDUSN是事务使用的回滚段的编号
XIDSLOT是哪个槽位数
XIDSQN是槽位覆盖多少次
这三个唯一的标示一个事务的编号

v$lock视图

v$lock 记录了session已经获得的锁定以及正在请求的锁定的信息

  • SID说明session的ID号
  • TYPE说明锁的类型,主要关注TX和TM
  • LMODE说明已经获得的锁定的模式,以数字编码表示
  • REQUEST说明正在请求的锁定的模式,以数字编码表示
  • BLOCK说明是否阻止了其他用户获得锁定,大于0说明是,等于0说明否

表级锁TM和事务锁TX。
对于ID,
对TM来讲ID1是哪个对象,
对于TX来讲ID1和ID2分别对应哪个事务

Oracle中的表级锁有

锁定模式锁定简称编码数值
Row ExclusiveRX3
Row SharedRS2
ShareS4
ExclusiveX6
Share Row ExclusiveSRX5
NULLN/A0或者1

v$enqueue_lock视图

v e n q u e u e l o c k 该 视 图 中 包 含 的 字 段 以 及 字 段 含 义 与 v enqueue_lock该视图中包含的字段以及字段含义与v enqueuelockvlock中的字段一模一样。只不过该视图中只显示那些申请锁定,但是无法获得锁定的session信息。其中的记录按照申请锁定的时间先后顺序排列,先申请锁定的session排在前面,排在前面的session将会先获得锁定。

v$locked_object视图

v$locked_object记录了当前已经被锁定的对象的信息

  • XIDUSN表示当前事务使用的回滚段的编号
  • XIDSLOT说明该事务在回滚段头部的事务表中对应的记录编号
  • XIDSQN说明序列号
  • OBJECT_ID说明当前被锁定的对象的ID号,可以根据该ID号到dba_objects里查找被锁定的对象名称
  • LOCKED_MODE说明锁定模式的数字编码
  • v$locked_object记录了当前已经被锁定的对象的信息,哪些对象被锁定了
  • XIDUSN、XIDSLOT、XIDSQN是锁这些对象的事务信息
  • OBJECT_ID是哪个对象被锁住了
  • LOCKED_MODE是锁的模式是什么,用什么方式锁了,比如某个表被锁住的话这里面可以查出来

v$session视图

v$session记录了当前session的相关信息

  • SID表示session的编号
  • SERIAL#表示序列号
  • SID和SERIAL#可以认为是v$session的主键,它们共同唯一标识一个session

记录的是会话信息,通过SID和SERIAL#,它俩可以唯一的标示一个会话

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值