查询oracle被锁对象并解锁

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

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

2、查询该sid的sql语句

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

3、解锁

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

4、查询被锁对象增强版

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

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...