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=ExclusiveREQUEST NUMBER 会话申请的锁的模式。与LMODE中的模式相同CTIME NUMBER 以秒为单位的,获得当前锁(或转换成当前锁的模式)以来的时间BLOCK NUMBER 当前锁是否阻塞另一个锁。0=不阻塞;1=阻塞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=ExclusiveDBA_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 150column blockers format a45column waiters format a45select '阻塞者('||sb.sid||':'||sb.serial#||'-'||sb.username||')-'||qb.sql_text blockers,'等待者('||sw.sid||':'||sw.serial#||'-'||sw.username||')-'||qw.sql_text waitersfrom v$lock lb,v$lock lw,v$session sb,v$session sw,v$sql qb,v$sql qwwhere lb.sid=sb.sidand lw.sid=sw.sidand sb.prev_sql_addr=qb.addressand sw.sql_address=qw.addressand lb.id1=lw.id1and sb.lockwait is nulland sw.lockwait is not nulland lb.block=1;-------------------------------------------------------------------------------------------------------要了解哪些数据库用户的会话锁定了对象、锁定的模式是什么、对应的操作系统用户是在哪台计算机上进行操作的、被锁定的对象及其类型等信息-------------------------------------------------------------------------------------------------------set pagesize 40 linesize 150column username format a9column sid format 9999column serial# format 99999999column mode_locked format a12column os_user_name format a16column object_name format a12column object_type format a12select 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_typefrom v$session s,v$locked_object lo,dba_objects dowhere lo.object_id=do.object_id and s.sid=lo.session_id;--------------------------------------------------------------------------------------------------------要了解阻塞者会话的sid、serial#信息--------------------------------------------------------------------------------------------------------set pagesize 40 linesize 150column username format a9column sid format 9999column serial# format 99999999select s.username,s.sid,s.serial#from v$session s,dba_blockers dbabwhere s.sid=dbab.holding_session;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/196700/viewspace-722469/
,如需转载,请注明出处,否则将追究法律责任。