v$lock 和v$locked_object
来源:互联网 发布:mac怎么连接校园网 编辑:程序博客网 时间:2024/06/02 12:59
为了监控Oracle系统中锁的状况,我们需要对几个系统视图有所了解:
3.1.1 v$lock视图
v$lock视图列出当前系统持有的或正在申请的所有锁的情况,其主要字段说明如下:
字段名称
类型
说明
SID
NUMBER
会话(SESSION)标识;
TYPE
VARCHAR(2)
区分该锁保护对象的类型;
ID1
NUMBER
锁标识1;
ID2
NUMBER
锁标识2;
LMODE
NUMBER
锁模式:0(None),1(null),2(row share), 3(row exclusive),4 (share),5(share row exclusive),6(exclusive)
REQUEST
NUMBER
申请的锁模式:具体值同上面的LMODE
CTIME
NUMBER
已持有或等待锁的时间;
BLOCK
NUMBER
是否阻塞其它锁申请;
表三:v$lock视图主要字段说明
其中在TYPE字段的取值中,本文只关心TM、TX两种DML锁类型;
关于ID1、ID2,TYPE取值不同其含义也有所不同:
TYPE
ID1
ID2
TM
被修改表的标识(object_id)
0
TX
以十进制数值表示该事务所占用的回滚段号与该事务在该回滚段的事务表(Transaction table)中所占用的槽号(slot number,可理解为记录号)。其组成形式为: 0xRRRRSSSS ( RRRR = RBS number, SSSS = slot )。
以十进制数值表示环绕(wrap)次数,即该槽(slot)被重用的次数;
表四:v$lock视图中ID1与ID2字段取值说明
3.1.2 v$locked_object视图
v$locked_object视图列出当前系统中哪些对象正被锁定,其主要字段说明如下:
字段名称
类型
说明
XIDUSN
NUMBER
回滚段号;
XIDSLOT
NUMBER
槽号;
XIDSQN
NUMBER
序列号;
OBJECT_ID
NUMBER
被锁对象标识;
SESSION_ID
NUMBER
持有锁的会话(SESSION)标识;
ORACLE_USERNAME
VARCHAR2(30)
持有该锁的用户的Oracle用户名;
OS_USER_NAME
VARCHAR2(15)
持有该锁的用户的操作系统用户名;
PROCESS
VARCHAR2(9)
操作系统的进程号;
LOCKED_MODE
NUMBER
锁模式,取值同表三中的LMODE;
表五:v$locked_object视图字段说明
3.2 监控脚本
根据上述系统视图,可以编制脚本来监控数据库中锁的状况。
3.2.1 showlock.sql
第一个脚本showlock.sql,该脚本通过连接v$locked_object与all_objects两视图,显示哪些对象被哪些会话锁住:
/* showlock.sql */
column o_name format a10
column lock_type format a20
column object_name format a15
select rpad(oracle_username,10) o_name,session_id sid,
decode(locked_mode,0,'None',1,'Null',2,'Row share',
3,'Row Exclusive',4,'Share',5,'Share Row Exclusive',6,'Exclusive') lock_type,
object_name ,xidusn,xidslot,xidsqn
from v$locked_object,all_objects
where v$locked_object.object_id=all_objects.object_id;
3.2.2 showalllock.sql
第二个脚本showalllock.sql,该脚本主要显示当前所有TM、TX锁的信息;
/* showalllock.sql */
select sid,type,id1,id2,
decode(lmode,0,'None',1,'Null',2,'Row share',
3,'Row Exclusive',4,'Share',5,'Share Row Exclusive',6,'Exclusive')
lock_type,request,ctime,block
from v$lock
where TYPE IN('TX','TM');
from:
http://wangyihbu.itpub.net/post/32548/408358
- v$lock 和v$locked_object
- v$lock 和v$locked_object
- 【转载】V$LOCK 和 V$LOCKED_OBJECT 的区别
- 动态视图_V$LOCK,V$LOCKED_OBJECT
- 动态视图_V$LOCK,V$LOCKED_OBJECT
- lock_type动态视图_V$LOCK,V$LOCKED_OBJECT
- 【原创】v$lockv和$locked_object…
- v$lockv和$locked_object的区别
- v$lockv和$locked_object的区别
- v$sqlarea和v$lock
- 查看处于被锁状态的表:v$locked_object dba_objects v$session all_objects v$sqlarea v$lock
- v$access 与 v$locked_object 的区别
- Oracle中出现Ora-00054该怎么处理,V$locked_object和V$session的用法
- 利用V$session,dba_objects和V$locked_Object找到谁给你的对象加了锁
- v$lock!
- V$LOCK
- ORACLE里锁模式v$locked_object , locked_mode
- V$LOCK视图的介绍和使用
- 正向代理和反向代理区别
- hadoop命令行中自定义计数器
- STM32 USB 问题汇总
- xStream完美转换XML、JSON
- MYSQL插件Handlersocket使用
- v$lock 和v$locked_object
- SecureCRT远程连接ubuntu设置
- WebLogic12部署实现项目系列之一:weblogic的安装
- [ javascript ] 突然想到的一个东西?测试一下!
- Android 给Animation设置setRepeatMode不起作用
- golang精华资源
- IOS 常用开源source
- PDA+CORS提高移动GIS的数据采集精度
- STS中使用hibernate连接oracle报错问题解决方法