利用errorstack事件進行錯誤跟蹤和診斷
有時在執行一系列後臺SQL或PL/SQL後出現了Oracle錯誤和異常,僅憑ORA錯誤號及簡單資訊提示難以確定錯誤發生的位置,此時可以利用errorstack事件幫助我們定位到準確的錯誤SQL,從而能有效的協助我們診斷問題。以下做個簡單測試,說明一下使用方法。
實驗前先建立一個測試表
conn scott/tiger
create table t1(id number, value number(2,1));
設定errorstack事件跟蹤
conn / as sysdba
alter system set events '1438 trace name errorstack forever, level 3';
實際中可以手動執行出現問題的後臺程式碼,獲取跟蹤檔案,這裡我們就簡單執行一個SQL做測試
conn scott/tiger
insert into t1 values(1, 100.2);
系統報錯:
第 1 行出現錯誤:
ORA-01438: 值大於為此列指定的允許精度
關閉errorstack事件跟蹤
conn / as sysdba
alter system set events '1438 trace name errorstack off';
開啟警告日誌,可以看到對事件的設定及對應的跟蹤檔案
Sun May 20 20:12:45 2018
OS Pid: 3924 executed alter system set events '1438 trace name errorstack forever, level 3'
Sun May 20 20:12:52 2018
Errors in file C:\ORACLE\diag\rdbms\mes\mes\trace\mes_ora_1340.trc:
ORA-01438: 值大於為此列指定的允許精度
Errors in file C:\ORACLE\diag\rdbms\mes\mes\trace\mes_ora_1340.trc:
ORA-01438: 值大於為此列指定的允許精度
Errors in file C:\ORACLE\diag\rdbms\mes\mes\trace\mes_ora_1340.trc:
ORA-01438: 值大於為此列指定的允許精度
Sun May 20 20:12:54 2018
Dumping diagnostic data in directory=[cdmp_20180520201254], requested by (instance=1, osid=1340), summary=[abnormal process termination].
Sun May 20 20:13:04 2018
OS Pid: 292 executed alter system set events '1438 trace name errorstack off'
檢視跟蹤檔案mes_ora_1340.trc的內容,可以看到發生錯誤的具體SQL資訊
----- Error Stack Dump -----
ORA-01438: 值大於為此列指定的允許精度
----- Current SQL Statement for this session (sql_id=5pwbn8v653a76) -----
insert into t1 values(1, 100.2)
----- Call Stack Trace -----
再往下就是棧的呼叫資訊,做進一步深入追蹤時可以參考。
找到了發生問題的SQL,就可以有針對性的進行分析和診斷了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2154787/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用ErrorStack進行錯誤跟蹤及診斷Error
- 使用ErrorStack進行錯誤跟蹤及診斷!Error
- 使用ErrorStack進行Oracle錯誤跟蹤及診斷ErrorOracle
- 使用ERRORSTACK進行錯誤跟蹤及診斷(轉)Error
- 跟蹤oracle特定報錯 errorstackOracleError
- 【DB】使用SQL_TRACE進行資料庫診斷跟蹤SQL資料庫
- 利用 Java dump 進行 JVM 故障診斷JavaJVM
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- 用Oracle跟蹤診斷掛起的會話Oracle會話
- Oracle跟蹤事件和dumpOracle事件
- 收集Oracle RAC跟蹤診斷資訊的幾個工具Oracle
- 配置tnsping跟蹤來診斷Oracle Net連線Oracle
- SQLServer進行SQL跟蹤SQLServer
- 對session進行跟蹤Session
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- sql_trace 和 events 跟蹤事件SQL事件
- 如何透過鏈路追蹤進行定時任務診斷
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- ORACLE診斷事件Oracle事件
- 診斷事件(1)事件
- 使用error stack診斷特定錯誤資訊Error
- 【TRACE】Oracle跟蹤事件Oracle事件
- Oracle 跟蹤事件【轉】Oracle事件
- Oracle利用errorstack追蹤tomcat報錯ORA-00903 無效表名OracleErrorTomcat
- 利用行SCN實現表變化跟蹤
- 【PHP Whoops】錯誤&異常 診斷元件PHPOOP元件
- Oracle診斷事件列表Oracle事件
- ORACLE診斷事件(zt)Oracle事件
- 依據錯誤號來跟蹤sql語句SQL
- 使用Error Stack跟蹤Oracle錯誤堆疊資訊ErrorOracle
- Oracle跟蹤事件 -- set eventsOracle事件
- (zt) 開啟事件跟蹤事件
- Oracle 跟蹤事件 set eventOracle事件
- oracle跟蹤事件(轉載)Oracle事件
- 怎樣收集10046跟蹤檔案來診斷效能問題
- 診斷並解決ORA-04031 錯誤
- 免費網站seo診斷:從哪些維度進行診斷呢?網站