1.

查看锁表进程SQL语句1: 
select sess.sid, 
   sess.serial#, 
   lo.oracle_username, 
   lo.os_user_name, 
   ao.object_name, 
   lo.locked_mode 
   from v$locked_object lo, 
   dba_objects ao, 
   v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 

查看锁表进程SQL语句2: 
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 

杀掉锁表进程: 
如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK 
alter system kill session '738,1429'; 

 

2.

select p.spid,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
解锁:
alter system kill session '146';(其中146为锁住的进程号) 

3.Oracle 死锁的检测查询及处理

SELECT    bs.username "Blocking User", bs.username "DB User",

          ws.username "Waiting User", bs.SID "SID", ws.SID "WSID",

          bs.serial# "Serial#", bs.sql_address "address",

          bs.sql_hash_value "Sql hash", bs.program "Blocking App",

          ws.program "Waiting App", bs.machine "Blocking Machine",

          ws.machine "Waiting Machine", bs.osuser "Blocking OS User",

          ws.osuser "Waiting OS User", bs.serial# "Serial#",

          ws.serial# "WSerial#",

          DECODE (wk.TYPE,

                  'MR', 'Media Recovery',

                  'RT', 'Redo Thread',

                  'UN', 'USER Name',

                  'TX', 'Transaction',

                  'TM', 'DML',

                  'UL', 'PL/SQL USER LOCK',

                  'DX', 'Distributed Xaction',

                  'CF', 'Control FILE',

                  'IS', 'Instance State',

                  'FS', 'FILE SET',

                  'IR', 'Instance Recovery',

                  'ST', 'Disk SPACE Transaction',

                  'TS', 'Temp Segment',

                  'IV', 'Library Cache Invalidation',

                  'LS', 'LOG START OR Switch',

                  'RW', 'ROW Wait',

                  'SQ', 'Sequence Number',

                  'TE', 'Extend TABLE',

                  'TT', 'Temp TABLE',

                  wk.TYPE

                 ) lock_type,

          DECODE (hk.lmode,

                  0, 'None',

                  1, 'NULL',

                  2, 'ROW-S (SS)',

                  3, 'ROW-X (SX)',

                  4, 'SHARE',

                  5, 'S/ROW-X (SSX)',

                  6, 'EXCLUSIVE',

                  TO_CHAR (hk.lmode)

                 ) mode_held,

          DECODE (wk.request,

                  0, 'None',

                  1, 'NULL',

                  2, 'ROW-S (SS)',

                  3, 'ROW-X (SX)',

                  4, 'SHARE',

                  5, 'S/ROW-X (SSX)',

                  6, 'EXCLUSIVE',

                  TO_CHAR (wk.request)

                 ) mode_requested,

          TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2,

          DECODE

             (hk.BLOCK,

              0, 'NOT Blocking',          /**//* Not blocking any other processes */

              1, 'Blocking',              /**//* This lock blocks other processes */

              2, 'Global',           /**//* This lock is global, so we can't tell */

              TO_CHAR (hk.BLOCK)

             ) blocking_others

     FROM v$lock hk, v$session bs, v$lock wk, v$session ws

    WHERE hk.BLOCK = 1

      AND hk.lmode != 0

      AND hk.lmode != 1

      AND wk.request != 0

      AND wk.TYPE(+) = hk.TYPE

      AND wk.id1(+) = hk.id1

      AND wk.id2(+) = hk.id2

      AND hk.SID = bs.SID(+)

      AND wk.SID = ws.SID(+)

      AND (bs.username IS NOT NULL)

      AND (bs.username <> 'SYSTEM')

      AND (bs.username <> 'SYS')

ORDER BY 1;
View Code

相关文章:

  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2021-09-18
  • 2021-10-21
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
猜你喜欢
  • 2021-05-25
  • 2021-10-28
相关资源
相似解决方案