设置HANGANALYZE跟踪诊断实例Hang问题.
1. 使用HANGANALYZE
Session级设置跟踪:
ALTER SESSION SET EVENTS 'immediate trace name HANGANALYZE level ';
或者以sysdba用户登陆,设置跟踪:
ORADEBUG hanganalyze
其中level的含义如下:
10 Dump all processes (IGN state)
5 Level 4 + Dump all processes involved in wait chains (NLEAF state)
4 Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)
3 Level 2 + Dump only processes thought to be in a hang (IN_HANG state)
1-2 Only HANGANALYZE output, no process dump at all
如果Level过大的话会产生大量的跟踪文件并影响系统的I/O性能,建议不要采用3级以上的跟踪。
2. HANGANALYZE跟踪文件分析
跟踪文件中最关键的部分是STATE OF NODES:
对于9i该部分的条目结构为:
[nodenum]/cnode/sid/sess_srno/session/ospid/state/start/finish/[adjlist]/predecessor
其中:
nodenum:定义每个session的序列号
sid:session的sid
sess_srno:session的Serial#
ospid:OS的进程ID
state:node的状态
adjlist:表示blocker node
predecessor:表示waiter node
State有如下几种状态:
IN_HANG:如果Session处于这种状态,表示Session遇到deadlock或者处于hung状态。
LEAF/LEAF_NW:这些Session通常是“blocker”或者是等待某些资源的“slow” node,通过字段“predecessor” 可以很容易标识出这些node。
NLEAF:这些Session通常被认为是“stuck”会话,意味着这些Session在等待某些Session的资源。通过字段“adjlist”可以很容易的定义该进程的blocker。
IGN/IGN_DMP:这些Session通常是IDLE Session。
3. 示例
to be continued......
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-21660/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/6906/viewspace-21660/