【DB筆試面試689】在Oracle中,如何收集systemdump?如何收集hanganalyze?

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

sql

題目部分數據庫

在Oracle中,如何收集systemdump?如何收集hanganalyze?session

     

oracle

答案部分
app

若sysdba可登錄,則使用命令「sqlplus "/as sysdba"」登陸系統。若不能登陸,則使用「sqlplus -prelim "/as sysdba"」登陸系統,而後使用oradebug收集systemdump,以下所示:ide

1SQL>oradebug setmypid
2SQL>--其中266表示dump的級別,不用調整,即把系統當前各個進程正在執行什麼、正在等待什麼所有抓下來
3SQL>oradebug dump systemstate 266
4SQL>--等上30秒到1分鐘
5SQL>oradebug dump systemstate 266
6SQL>oradebug tracefile_name
7/u02/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_46679.trc

若要得到某個進程的狀態,則:性能

1SYS@lhrdb> oradebug TRACEFILE_NAME
2/u02/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_54008.trc
3SYS@lhrdb> oradebug setospid 54008
4Oracle pid: 37, Unix process pid: 54008, image: oracle@orclalhr (TNS V1-V3)
5SYS@lhrdb> oradebug dump processstate 10
6Statement processed.

若是系統HANG住的時候,則systemstate基本等同於hanganalyze,能夠用於診斷SYSTEM HANG住的問題。Oracle數據庫可能由於HANG住而產生嚴重的性能問題,經過hanganalyze功能產生的日誌能夠幫助DBA快速地診斷出數據庫的問題,以下所示:debug

1SQL> alter session set events 'immediate trace name HANGANALYZE level 3';

對於單實例而言,以下設置:日誌

1SQL>ORADEBUG hanganalyze 3

對於RAC環境,以下設置:blog

1SQL>ORADEBUG setmypid
2SQL>ORADEBUG setinst all
3SQL>ORADEBUG -g def hanganalyze 3
相關文章
相關標籤/搜索