ITPub博客

首页 > Linux操作系统 > Linux操作系统 > v$lock

v$lock

原创 Linux操作系统 作者:boyall111 时间:2011-05-27 22:53:35 0 删除 编辑

v$lock 和v$locked_object

Oracle 2010-10-11 14:34:37 阅读131 评论0   字号: 订阅

3.1 系统视图介绍

为了监控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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/229689/viewspace-696470/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-03-03

  • 博文量
    15
  • 访问量
    19933