溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用ErrorStack進(jìn)行錯(cuò)誤跟蹤及診斷!

發(fā)布時(shí)間:2020-08-07 18:24:00 來源:ITPUB博客 閱讀:182 作者:q418441117 欄目:關(guān)系型數(shù)據(jù)庫

在使用oracle數(shù)據(jù)庫的過程中,可能會遇到各種各樣的錯(cuò)誤或異常,很多異常提示并不具體,我們有必要了解一下oracle的ErrorStack跟蹤方式。ErrorStack是oracle提供的一種對于錯(cuò)誤堆棧進(jìn)行跟蹤的方法,通過設(shè)置跟蹤可以將一些錯(cuò)誤的后臺信息詳盡轉(zhuǎn)儲出來,寫入跟蹤文件,對于錯(cuò)誤的研究與診斷非常有效。設(shè)置ErrorStack主要有4個(gè)級別:

0 僅轉(zhuǎn)儲錯(cuò)誤堆棧(0級已經(jīng)逐漸被廢棄)
1 轉(zhuǎn)儲錯(cuò)誤堆棧和函數(shù)調(diào)用堆棧
2 level 1+ProcessState
3 level 2+Context area(顯示所有cursors,著重顯示當(dāng)前cursor)

用法:
    開始跟蹤: alter system set events '<error_num> trace name errorstack forever,level <level>';  
    結(jié)束跟蹤: alter system set events '<error_num> trace name errorstack off';  

首先模擬一個(gè)錯(cuò)誤:
   SQL> create table t3(id number,name varchar2(10));  
      
    表已創(chuàng)建。  
      
    SQL> insert into t3 values(1,a);  
    insert into t3 values(1,a)  
                            *  
    第 1 行出現(xiàn)錯(cuò)誤:  
    ORA-00984: 列在此處不允許  

下面跟蹤這個(gè)錯(cuò)誤:
    SQL> alter system set events '984 trace name errorstack forever,level 3';  
      
    系統(tǒng)已更改。  
      
    SQL> insert into t3 values(1,a);  
    insert into t3 values(1,a)  
                            *  
    第 1 行出現(xiàn)錯(cuò)誤:  
    ORA-00984: 列在此處不允許  
      
    SQL> alter system set events '984 trace name errorstack off';  
      
    系統(tǒng)已更改。  

在alert_orcl.log文件中可以看見如下信息:

    Sun Dec 18 21:08:13 2011  
    OS Pid: 4058 executed alter system set events '984 trace name errorstack forever,level 3'  
    Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_4058.trc:  
    ORA-00984: 列在此處不允許  
    Sun Dec 18 21:08:49 2011  
    Trace dumping is performing id=[cdmp_20111218210849]  
    Sun Dec 18 21:09:20 2011  
    OS Pid: 4058 executed alter system set events '984 trace name errorstack off'  

截取跟蹤文件的一段錯(cuò)誤信息:
    dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0)  
    ----- Error Stack Dump -----  
    ORA-00984: 列在此處不允許  
    ----- Current SQL Statement for this session (sql_id=9b8cruw3gwdxx) -----  
    insert into t3 values(1,a)  
      
    *** 2011-12-18 21:08:22.550  
      
    ----- Call Stack Trace -----  
    calling              call     entry                argument values in hex        
    location             type     point                (? means dubious value)       
    -------------------- -------- -------------------- ----------------------------  

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI