oracle oradebug使用詳解

zhcunique發表於2021-05-13

oradebug的前身是在ORACLE 7時的ORADBX,它可以啟動用停止跟蹤任何會話,dump SGA和其它記憶體結構,喚醒ORACLE程式,如SMON、PMON程式,也可以透過程式號使程式掛起和恢復等,還有很多功能,實際上這些功能都不常用,最好用的是直接透過命令輸出生成trace檔案的名稱(帶路徑的哦),省去不少麻煩,系統HANG住用它做分析也比較好用,和大家分享一下它最常用的方法!

1> oradebug有哪些可用命令?

  以sysdba身份登陸資料庫,透過oradebug help可以看到oradebug常用命令

  sqlplus / as sysdba

  oradebug help

2> 跟蹤當前會話資訊

  oradebug setmypid  --跟蹤當前會話

  oradebug setospid  --跟蹤系統程式

  oradebug setorapid  --跟蹤ORACLE程式

  oradebug unlimit   --取消trace檔案大小限制     

  oradebug tracefile_name  --檢視trace檔名及位置

3> 用oradebug做session級10046或10053

  oradebug setmypid

   oradebug unlimit

  oradebug session_event 10046 trace name context forever ,level 4 --啟用會話級10046

  oradebug event 10046 trace name context off   --關閉10046事件

  oradebug tracefile_name  --檢視tracefile檔案位置及檔名

4> 用oradebug做oracle process級10046

  oradebug setorapid

  oradebug unlimit

  oradebug event 10046 trace name context forever ,level 4

  oradebug event 10046 trace name context off 

  oradebug tracefile_name

5> oradebug系統hang住原因分析

   如果系統HANG住,只要sys使用者可以登陸,那麼用oradebug做原因分析是非常有用的

  oradebug setmypid

  oradebug unlimit

  oradebug setinst all   --RAC環境

  oradebug hanganalyze 3  -- 級別一般指定為3足夠了

  oradebug -g def dump systemstate 10  --RAC環境

  oradebug tracefile_name

6> 獲取某程式的狀態資訊

  oradebug setospid 22180

   oradebug dump processstate 10

  oradebug tracefile_name

7> 獲取程式錯誤資訊狀態

  oradebug setospid 22180

  oradebug dump errorstack 3

8> 追蹤造成錯誤資訊的原因,如ORA-04031

  oradebug event 4031 trace name errorstack level 3


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994536/viewspace-2772035/,如需轉載,請註明出處,否則將追究法律責任。