oradebug的使用說明

lusklusklusk發表於2018-11-05

oradebug是個sql*plus命令列工具,有sysdba的許可權就可以登入,用於追蹤程式的詳細資訊並生成trace檔案


sqlplus / as sysdba

SQL> oradebug help


expdp很慢,增加metrics和trace引數還是看不出問題,透過10046 level 8獲取等待事件,使用oradebug抓取expdp程式的這些詳細資訊並寫入到trace檔案

1、timed_statistics必須為true,11.2.0.0開始預設為true

ALTER SYSTEM SET timed_statistics = TRUE SCOPE = memory; 

2、 執行一個expdp匯出,增加了trace預設會生成一個trace檔案

expdp system/123456 directory=DATA_PUMP_DIR dumpfile=dump123 logfile=dump123.log schemas=hr METRICS=Y TRACE=480300

3、檢視expdp的dw程式的程式號spid

CONNECT / as sysdba 

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') "DATE", s.program, s.sid, 

s.status, s.username, d.job_name, p.spid, s.serial#, p.pid 

from v$session s, v$process p, dba_datapump_sessions d 

where p.addr=s.paddr and s.saddr=d.saddr and s.program like '%DW%'; 

4、假如上面查詢結果p.spid為123,10046 trace level 8其中的8表示跟蹤等待事件。

oradebug setospid 123

oradebug unlimit 

oradebug event 10046 trace name context forever, level 8 

oradebug tracefile_name 

oradebug event 10046 trace name context off 


oradebug檔案dump過程的資訊

alter system dump logfile  '你要dump的日誌:可以是redolog也可以是archivelog';

oradebug setmypid

oradebug tracefile_name;


oradebug系統hang住原因分析

oradebug setmypid

oradebug unlimit

oradebug hanganalyze 3 

oradebug tracefile_name


獲取某程式的狀態資訊

oradebug setospid 22180

oradebug dump processstate 10

oradebug tracefile_name

---oradebug dump選項的資訊

DUMP   <dump_name> <lvl>

---檢視dump_name

SQL> oradebug dumplist

--lvl,如果為了獲取全面一點的資訊,可以使用Level 10

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

相關文章