查询oracle被锁对象并解锁

前端之家收集整理的这篇文章主要介绍了查询oracle被锁对象并解锁前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、查询oracle被锁对象及其语句

SELECT@H_301_18@ a_s.owner,@H_301_18@
@H_301_18@ a_s.object_name,@H_301_18@
@H_301_18@ a_s.object_type,@H_301_18@
@H_301_18@ VN.SID,@H_301_18@
@H_301_18@ VN.SERIAL#,@H_301_18@
@H_301_18@ VS.SPID@H_301_18@ "OS_PID"@H_301_18@ ,@H_301_18@
@H_301_18@ VN.PROCESS@H_301_18@ "CLIENT_PID"@H_301_18@ ,@H_301_18@
@H_301_18@ VN.USERNAME,@H_301_18@
@H_301_18@ VN.OSUSER,@H_301_18@
@H_301_18@ VN.MACHINE@H_301_18@ "HOSTNAME"@H_301_18@ ,@H_301_18@
@H_301_18@ VN.TERMINAL,@H_301_18@
@H_301_18@ VN.PROGRAM,@H_301_18@
@H_301_18@ TO_CHAR(VN.logoN_TIME,@H_301_18@ 'YYYY-MM-DD HH24:MI:SS'@H_301_18@ )@H_301_18@ "LOGIN_TIME"@H_301_18@ ,@H_301_18@
@H_301_18@ 'alter system kill session '@H_301_18@''@H_301_18@ ||vn.sid||@H_301_18@ ','@H_301_18@ ||vn.serial#||@H_301_18@ ''@H_301_18@';'@H_301_18@ "ORACKE_KILL"@H_301_18@ ,@H_301_18@
@H_301_18@ 'kill -9 '@H_301_18@ || VS.SPID@H_301_18@ "OS_KILL"@H_301_18@
FROM@H_301_18@ ALL_OBJECTS A_S,@H_301_18@
@H_301_18@ V$LOCKED_OBJECT V_T,@H_301_18@
@H_301_18@ V$SESSION VN,@H_301_18@
@H_301_18@ V$PROCESS VS@H_301_18@
WHERE@H_301_18@ A_S.OBJECT_ID=V_T.OBJECT_ID@H_301_18@
AND@H_301_18@ V_T.SESSION_ID =VN.SID@H_301_18@
AND@H_301_18@ VS.ADDR=VN.PADDR@H_301_18@
AND@H_301_18@ VN.USERNAME@H_301_18@ NOT@H_301_18@ IN@H_301_18@ (@H_301_18@ 'SYSMAN'@H_301_18@ ,@H_301_18@ 'SYS'@H_301_18@ );@H_301_18@

2、查询该sid的sql语句

select@H_301_18@ *@H_301_18@ from@H_301_18@ v$sql vl,v$session vn@H_301_18@
where@H_301_18@ vl.ADDRESS= decode(vn.sql_ADDRESS,@H_301_18@ null@H_301_18@ ,vn.PREV_sql_ADDR,VN.sql_ADDRESS)@H_301_18@
and@H_301_18@ vn.sid=&sid;@H_301_18@

3、解锁

alter@H_301_18@ system kill session@H_301_18@ 'sid,serial#'@H_301_18@ ;@H_301_18@
--note:不能kill自身@H_301_18@

4、查询被锁对象增强版

SELECT@H_301_18@ DDL.OWNER@H_301_18@ AS@H_301_18@ 用户,@H_301_18@
@H_301_18@ DDL.@H_301_18@ NAME@H_301_18@ AS@H_301_18@ 对象,@H_301_18@
@H_301_18@ DDL.type@H_301_18@ AS@H_301_18@ 类型,@H_301_18@
@H_301_18@ VS.OSUSER@H_301_18@ AS@H_301_18@ OS_USER,@H_301_18@
@H_301_18@ VS.MACHINE,@H_301_18@
@H_301_18@ VS.STATUS,@H_301_18@
@H_301_18@ VS.PROGRAM,@H_301_18@
@H_301_18@ VS.logoN_TIME@H_301_18@ AS@H_301_18@ "LOGIN_TIME"@H_301_18@ ,@H_301_18@
@H_301_18@ VP.SPID,@H_301_18@
@H_301_18@ 'kill -9 '@H_301_18@ || VP.SPID@H_301_18@ AS@H_301_18@ OS_KILL,@H_301_18@
@H_301_18@ vs.sid,@H_301_18@
@H_301_18@ vs.SERIAL#,@H_301_18@
@H_301_18@ 'alter system kill session '@H_301_18@''@H_301_18@ || vs.sid ||@H_301_18@ ','@H_301_18@ || vs.serial# ||@H_301_18@
@H_301_18@ ''@H_301_18@';'@H_301_18@ "ORACKE_KILL"@H_301_18@
@H_301_18@ FROM@H_301_18@ DBA_DDL_LOCKS DDL,V$SESSION VS,V$PROCESS VP@H_301_18@
@H_301_18@ WHERE@H_301_18@ DDL.SESSION_ID = VS.SID@H_301_18@
@H_301_18@ AND@H_301_18@ VS.PADDR = VP.ADDR;@H_301_18@

猜你在找的Oracle相关文章