使用hanganalyze分析数据库hang

简单记录一下命令,后续再出分析的教程

RAC数据库收集hanganalyze的命令

SQL> conn / as sysdba
SQL> oradebug setmypid
SQL> oradebug unlimit
SQL> oradebug -g all hanganalyze 3

当数据库hang住时,无法登陆时,可以通过prelim的登陆方式登录,如下:

sqlplus -prelim / as sysdba
oradebug setospid <process ID>
oradebug unlimit
oradebug dump systemstate 10

数据库hanganalyze级别含义

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

从上面的信息看,在进行hanganalyze dump时有多种级别的level可以选择,那么如何选择level?一般来讲,不建议使用level 3以上的操作,因为产生的trace可能会很大,尤其是大型的OLTP系统;
另外一般数据库hang住时可能系统压力都巨大,所以再产生很大的trace可能导致问题更加严重。

你可能感兴趣的:(Oracle,DBA)