您的位置:首页 > 数据库 > Oracle

oracle 僵尸session的处理方法

2015-09-14 11:56 806 查看
    很晚了现场打来电话,说操作两个模块的单据卡住了。架构是weblogic + oracle(发布在IBM AIX上,RAC)。还反馈,就在刚才在跳板机器上的pl/sql developer上执行了刷新两个模块数据的脚本,但在执行过程中,跳板机停机了,然后就无法连接。

    1.确认是否是锁造成,注意集群环境视图要用GV开头,如果不用它开头,则需要单独连两个实例查询。查询结果是有锁

SELECT bs.username "Blocking User",
       bs.username "DB User",
       bs.SID "SID",
       bs.serial# "Serial#",
       bs.sql_address "address",
       bs.sql_hash_value "Sql hash",
       bs.program "Blocking App",  
       bs.machine "Blocking Machine",
       bs.osuser "Blocking OS User",
       bs.serial# "Serial#",                      
       ws.username "Waiting User",
       ws.SID "WSID",
       ws.program "Waiting App",
       ws.machine "Waiting Machine",
       ws.osuser "Waiting OS User",
       ws.serial# "WSerial#",
       wk.TYPE lock_type,
       hk.lmode mode_held,
       wk.request mode_requested,
       TO_CHAR(hk.id1) lock_id1,
       TO_CHAR(hk.id2) lock_id2,
       hk.BLOCK blocking_others
  FROM gv$lock hk, gv$session bs, gv$lock wk, gv$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;

 2. kill session, 堵塞者和被堵塞者都kill,alter system kill session 'sid,serial#';两个节点都要执行。

   执行过程中报了一些错,说是session不存在。

 3. 检查锁的情况,发现还是有锁,通过sid到 v$session找sid,serial#,去kill,报session找不到。

select l.INST_ID, l.sid, s.owner, s.object_name

  from gv$lock l, dba_objects s

 where l.ID1 = s.object_id

   and s.owner <> 'SYS'; 

 4. 这种情况只能从操作系统层面上kill了。 kill -9 SPID。

 select p.INST_ID,s.SID,p.SPID

  from gv$process p, gv$session s

 where P.ADDR = S.PADDR

   and sid = 864;

  这里有几个id,

  spid (system process id)  是操作系统层面的进程id 
  pid(process id)  是oracle给自己的进程的一个编号
  sid (这个就是session 的id)

 5.重新检查锁的情况,发现没有了,通知实施测试系统。

总结:数据库层面kill不掉的session,就只能通过OS层面上kill,以前处理dblink的时候也是一样的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: