V$LOCK

v$lock视图的各个列及其说明:
ADDR RAW(4)          在内存中锁定的对象的地址
KADDR RAW(4)         在内存中锁的地址
SID NUMBER           保持或申请锁的会话的标识号
TYPE VARCHAR2(2)     锁的类型。TX=行锁或事务锁;TM=表锁或DML锁;UL=PL/SQL用户锁
ID1 NUMBER           锁的第1标识号。
                      如果锁的类型是TM,该值表示将要被锁定的对象的标识号;
                      如果锁的类型是TX,该值表示撤销段号码的十进制值
ID2 NUMBER           锁的第2标识号。
                        如果锁的类型是TM,该值为0;
                        如果锁的类型是TX,该值表示交换次数
LMODE NUMBER         会话保持的锁的模式。
                         0=None;1=Null;2=Row-S (SS);3=Row-X (SX);
                         4=Share;5=S/Row-X (SSX);6=Exclusive
REQUEST NUMBER       会话申请的锁的模式。与LMODE中的模式相同
CTIME NUMBER         以秒为单位的,获得当前锁(或转换成当前锁的模式)以来的时间
BLOCK NUMBER         当前锁是否阻塞另一个锁。0=不阻塞;1=阻塞

0, 'Not Blocking',  /* Not blocking any other processes */
1, 'Blocking',      /* This lock blocks other processes */
2, 'Global',        /* This lock is global, so we can't tell */

oracle_home/rdbms/admin/catblock.sql

V$LOCKED_OBJECT视图的各个列及其说明:
XIDUSN NUMBER                  撤销段号码
XIDSLOT NUMBER                 被锁定的对象在撤销段中的位置
XIDSQN NUMBER                  序列号
OBJECT_ID NUMBER               被锁定的对象的标识号
SESSION_ID NUMBER              会话的标识号
ORACLE_USERNAME VARCHAR2(30)   Oracle用户名
OS_USER_NAME VARCHAR2(30)      操作系统用户名
PROCESS VARCHAR2(12)           操作系统进程标识号
LOCKED_MODE NUMBER             对象被锁定的模式。
                                   0=None;1=Null;2=Row-S (SS);3=Row-X (SX);
                                   4=Share;5=S/Row-X (SSX);6=Exclusive

DBA_LOCKS视图的各个列及其说明:
SESSION_ID NUMBER              保持或申请锁的会话的标识号
LOCK_TYPE VARCHAR2(26)         锁的类型
MODE_HELD VARCHAR2(40)         保持的锁的模式
MODE_REQUESTED VARCHAR2(40)    申请的锁的模式
LOCK_ID1 VARCHAR2(40)          锁的第1标识号
LOCK_ID2 VARCHAR2(40)          锁的第2标识号
LAST_CONVERT NUMBER            以秒为单位的,获得当前锁(或转换成当前锁的模式)以来的时间
BLOCKING_OTHERS VARCHAR2(40)   当前锁是否阻塞另一个锁。Not Blocking=不阻塞;Blocking=阻塞

DBA_WAITERS视图的各个列及其说明:
WAITING_SESSION NUMBER         等待锁的会话(被阻塞的会话)的标识号
HOLDING_SESSION NUMBER         保持锁的会话(阻塞的会话)的标识号
LOCK_TYPE VARCHAR2(26)         锁的类型
MODE_HELD VARCHAR2(40)         保持的锁的模式
MODE_REQUESTED VARCHAR2(40)    申请的锁的模式
LOCK_ID1 NUMBER                锁的第1标识号
LOCK_ID2 NUMBER                锁的第2标识号

DBA_BLOCKERS视图的各个列及其说明:
HOLDING_SESSION NUMBER         显示阻塞了其他会话的那些会话的标识号

-----------------------------------------------------------------------------------------------------
由sys用户通过查询与锁相关的视图来了解锁,了解阻塞会话与被阻塞会话的sid、serial#、用户名及其所使用的DML操作语句。
-----------------------------------------------------------------------------------------------------

set pagesize 40 linesize 150
column blockers format a45
column waiters format a45
select '阻塞者('||sb.sid||':'||sb.serial#||'-'||sb.username||')-'||qb.sql_text blockers,
'等待者('||sw.sid||':'||sw.serial#||'-'||sw.username||')-'||qw.sql_text waiters
from v$lock lb,v$lock lw,v$session sb,v$session sw,v$sql qb,v$sql qw
where lb.sid=sb.sid
and lw.sid=sw.sid
and sb.prev_sql_addr=qb.address
and sw.sql_address=qw.address
and lb.id1=lw.id1
and sb.lockwait is null
and sw.lockwait is not null
and lb.block=1;
-------------------------------------------------------------------------------------------------------
要了解哪些数据库用户的会话锁定了对象、锁定的模式是什么、对应的操作系统用户是在哪台计算机上进行操作的、被锁定的对象及其类型等信息
-------------------------------------------------------------------------------------------------------
set pagesize 40 linesize 150
column username format a9
column sid format 9999
column serial# format 99999999
column mode_locked format a12
column os_user_name format a16
column object_name format a12
column object_type format a12
select s.username,s.sid,s.serial#,
decode(lo.locked_mode,
0,'none',
1,'null',
2,'row-s(ss)',
3,'row-x(sx)',
4,'share',
5,'s/row-x(ssx)',
6,'exclusive',
to_char(lo.locked_mode)) mode_locked,
lo.os_user_name,
do.object_name,do.object_type
from v$session s,v$locked_object lo,dba_objects do
where
lo.object_id=do.object_id and s.sid=lo.session_id;
--------------------------------------------------------------------------------------------------------
要了解阻塞者会话的sid、serial#信息
--------------------------------------------------------------------------------------------------------
set pagesize 40 linesize 150
column username format a9
column sid format 9999
column serial# format 99999999
select s.username,s.sid,s.serial#
from v$session s,dba_blockers dbab
where s.sid=dbab.holding_session;

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

转载于:http://blog.itpub.net/8797129/viewspace-571443/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值