使用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可能導致問題更加嚴重。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章