查询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自身 //第一个sql中的“alter system kill session '''||vn.sid||','||vn.serial#||'''”

 

4、查询被锁对象增强版
SELECT DDL.OWNER, DDL.NAME, DDL.type, VS.OSUSER, VS.MACHINE, VS.STATUS, VS.PROGRAM, VS.LOGON_TIME, VP.SPID, vs.sid, vs.SERIAL#
FROM DBA_DDL_LOCKS DDL, V$SESSION VS, V$PROCESS VP 
WHERE DDL.SESSION_ID = VS.SID AND VS.PADDR = VP.ADDR;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值