ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【LOCK】Oracle锁调查的脚本

【LOCK】Oracle锁调查的脚本

原创 Linux操作系统 作者:chicheng_cn421 时间:2011-12-06 11:12:23 0 删除 编辑

前几天项目中同事的一个调查依赖,整了条SQL,来看一下谁、那条SQL在锁着表。
感觉脚本重用性还有些,记录一下。例子稍后有时间时再加一下。~~

----------------------
select
/*+ NO_MERGER(a) NO_MERGE(b) NO_MERGER(c)*/
 a.USERNAME,
 a.MACHINE,
 a.SID,
 a.SERIAL#,
 a.LAST_CALL_ET "Sec",
 b.ID1,
 c.SQL_TEXT     "SQL"
  from v$session a, v$lock b, v$sqltext c
 where a.USERNAME is not null
   and a.LOCKWAIT = b.KADDR
   and a.SQL_HASH_VALUE = c.HASH_VALUE
----------------------

再补充三个,很好用
----------------------------
--查询被锁的表
SELECT p.spid,
       a.serial#,
       c.object_name,
       b.session_id,
       b.oracle_username,
       b.os_user_name
  FROM v$process p,
       v$session a,      
       v$locked_object b,
       all_objects c
 WHERE p.addr = a.paddr
   AND a.process = b.process
   AND c.object_id = b.object_id

--查询锁表进程       
SELECT sid, serial#, username, osuser
  FROM v$session
 where suser = 'OS USER名'
 
--杀死进程
alter system kill session 'sid, serial#';  

------------------------------
以上。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20335819/viewspace-712792/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-03-05

  • 博文量
    261
  • 访问量
    417490