1、查找hang住对象,通过v$access查找当前正在访问这个对象的会话
select SID,OBJECT from v$access where object like 'PKG%'
SID OBJECT
--- --------------------------
141 PKG_CREATE_BASIC_MID_DAY2
2、查找这个对象正在等待的事件,发现这个会话在等待library cache pin,和我们看到的现象十分一致。于是可以采取进一步分析工作。
select SID, EVENT, STATE from v$session_wait where sid = 141;
SID EVENT STATE
--- ---------------- ------------
141 library cache pin WAITING
3、这种情况下,做一个HANGANALYZE有助于快速定位HANG的情况。
oradebug hanganalyze 3;在HANGANALYZE报告中,发现48号进程是阻塞者。
4、查找SESSION和相关的操作系统进程
select STATUS, PROCESS from V$SESSION where sid = 48 ;
----- ---------
KILLED 7856

我们很容易就能获得阻塞者的信息。并根据阻塞者的情况采取相关的措施。自己编写一个等待事件链分析工具,针对V$SESSION或者V$ACTIVE_SESSION_HISTORY视图进行分析,就可以获得你所需要的明确信息了。

最后修改时间:2020-06-05 09:36:10
文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




