oracle 锁与等待

1. 查看引起等待的死锁

SELECT 'Lock' "Status",
  a.username "用户名", a.sid "SID", a.serial# "SERIAL#",
  b.type "锁类型",
  DECODE(b.lmode, 1, 'No Lock', 2, 'Row Share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', 'NONE') "占用的模式",
  DECODE(b.request, 1, 'No Lock', 2, 'Row Share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', 'NONE') "请求的模式",
  c.object_name "对象名",
  c.owner "对象所有者", c.object_type "对象类型",
  b.id1 "资源ID1", b.id2 "资源ID2",b.ctime "ctime(秒) ",
  'ALTER SYSTEM KILL SESSION '''||a.sid||','||a.serial#||''';' "kill Session ",
  'kill -9 '||d.spid "Kill Process (Unix Linux)", 
  'orakill '||f.instance_name||' '||d.spid "Kill Process (Windows)" 
FROM v$session a, v$lock b, v$locked_object b1, dba_objects c, v$process d, v$instance f
WHERE a.type <> 'BACKGROUND'
  AND a.sid = b.sid
  AND b.request = 0
  AND d.addr = a.paddr
  AND b1.session_id = a.sid
  AND b1.object_id = c.object_id
  AND f.status = 'OPEN'
  AND f.database_status = 'ACTIVE'
order by b.ctime;
SELECT * FROM  v$lock;


你可能感兴趣的:(oracle_lock)