oracle查询锁情况及解锁

select count(*) from v$locked_object; --查询锁表有几个
select * from v$locked_object; --查询锁表的基本信息

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
--查询sessionId
alter system kill session '212,6015';--杀进程

或者可以用:
SELECT A.OWNER 方案名,A.OBJECT_NAME 表名,B.XIDUSN 回滚段号,B.XIDSLOT 槽号,B.XIDSQN 序列号,
       B.SESSION_ID 锁表SESSION_ID,B.ORACLE_USERNAME 锁表用户名,
       decode(D.type,'XR','NULL','RS','SS(Row-S)','CF','SS(Row-S)','TM','TABLE LOCK','PW','TABLE LOCK','TO',
              'TABLE LOCK','TS','TABLE LOCK','RT','ROW LOCK','TX','ROW LOCK','MR','S(Share)',NULL) 锁定方式,
       C.MACHINE 用户组,C.TERMINAL 机器名,B.OS_USER_NAME 系统用户名,B.PROCESS 系统进程id,
       DECODE(C.STATUS, 'INACTIVE', '不活动', 'ACTIVE', '活动') 活动情况,C.SERVER,C.SID,C.SERIAL#,C.PROGRAM 连接方式,C.LOGON_TIME
  FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C, v$lock d
WHERE (A.OBJECT_ID = B.OBJECT_ID) AND (B.PROCESS = C.PROCESS) and C.sid = d.sid AND B.LOCKED_MODE = D.LMODE ORDER BY 1, 2;

猜你喜欢

转载自elvishehai.iteye.com/blog/2204377