使用ErrorStack進行錯誤跟蹤及診斷!
在使用oracle資料庫的過程中,可能會遇到各種各樣的錯誤或異常,很多異常提示並不具體,我們有必要了解一下oracle的ErrorStack跟蹤方式。ErrorStack是oracle提供的一種對於錯誤堆疊進行跟蹤的方法,透過設定跟蹤可以將一些錯誤的後臺資訊詳盡轉儲出來,寫入跟蹤檔案,對於錯誤的研究與診斷非常有效。設定ErrorStack主要有4個級別:
0 僅轉儲錯誤堆疊(0級已經逐漸被廢棄)
1 轉儲錯誤堆疊和函式呼叫堆疊
2 level 1+ProcessState
3 level 2+Context area(顯示所有cursors,著重顯示當前cursor)
用法:
開始跟蹤: alter system set events '<error_num> trace name errorstack forever,level <level>';
結束跟蹤: alter system set events '<error_num> trace name errorstack off';
首先模擬一個錯誤:
SQL> create table t3(id number,name varchar2(10));
表已建立。
SQL> insert into t3 values(1,a);
insert into t3 values(1,a)
*
第 1 行出現錯誤:
ORA-00984: 列在此處不允許
下面跟蹤這個錯誤:
SQL> alter system set events '984 trace name errorstack forever,level 3';
系統已更改。
SQL> insert into t3 values(1,a);
insert into t3 values(1,a)
*
第 1 行出現錯誤:
ORA-00984: 列在此處不允許
SQL> alter system set events '984 trace name errorstack off';
系統已更改。
在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'
擷取跟蹤檔案的一段錯誤資訊:
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)
-------------------- -------- -------------------- ----------------------------
0 僅轉儲錯誤堆疊(0級已經逐漸被廢棄)
1 轉儲錯誤堆疊和函式呼叫堆疊
2 level 1+ProcessState
3 level 2+Context area(顯示所有cursors,著重顯示當前cursor)
用法:
開始跟蹤: alter system set events '<error_num> trace name errorstack forever,level <level>';
結束跟蹤: alter system set events '<error_num> trace name errorstack off';
首先模擬一個錯誤:
SQL> create table t3(id number,name varchar2(10));
表已建立。
SQL> insert into t3 values(1,a);
insert into t3 values(1,a)
*
第 1 行出現錯誤:
ORA-00984: 列在此處不允許
下面跟蹤這個錯誤:
SQL> alter system set events '984 trace name errorstack forever,level 3';
系統已更改。
SQL> insert into t3 values(1,a);
insert into t3 values(1,a)
*
第 1 行出現錯誤:
ORA-00984: 列在此處不允許
SQL> alter system set events '984 trace name errorstack off';
系統已更改。
在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'
擷取跟蹤檔案的一段錯誤資訊:
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)
-------------------- -------- -------------------- ----------------------------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2149162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用ErrorStack進行錯誤跟蹤及診斷Error
- 使用ErrorStack進行Oracle錯誤跟蹤及診斷ErrorOracle
- 使用ERRORSTACK進行錯誤跟蹤及診斷(轉)Error
- 利用errorstack事件進行錯誤跟蹤和診斷Error事件
- 【DB】使用SQL_TRACE進行資料庫診斷跟蹤SQL資料庫
- 跟蹤oracle特定報錯 errorstackOracleError
- 使用error stack診斷特定錯誤資訊Error
- 用Oracle跟蹤診斷掛起的會話Oracle會話
- 使用Error Stack跟蹤Oracle錯誤堆疊資訊ErrorOracle
- 收集Oracle RAC跟蹤診斷資訊的幾個工具Oracle
- 配置tnsping跟蹤來診斷Oracle Net連線Oracle
- SQLServer進行SQL跟蹤SQLServer
- 對session進行跟蹤Session
- 如何透過鏈路追蹤進行定時任務診斷
- 使用DBMS_TRACE對PL/SQL進行跟蹤SQL
- 使用OpenCV進行ROS 2的循線跟蹤OpenCVROS
- 使用Dstat來進行Linux綜合效能診斷Linux
- 使用SQL_TRACE進行資料庫診斷SQL資料庫
- 【PHP Whoops】錯誤&異常 診斷元件PHPOOP元件
- 使用SQL_TRACE進行資料庫診斷(轉)SQL資料庫
- 使用SQL_TRACE進行資料庫診斷(1)SQL資料庫
- 使用SQL_TRACE進行資料庫診斷(2)SQL資料庫
- 使用SQL_TRACE進行資料庫診斷(zt)SQL資料庫
- 依據錯誤號來跟蹤sql語句SQL
- 怎樣收集10046跟蹤檔案來診斷效能問題
- 使用HANGANALYZE跟蹤檔案診例項hang問題
- 診斷並解決ORA-04031 錯誤
- 免費網站seo診斷:從哪些維度進行診斷呢?網站
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- 轉載:使用SQL_TRACE進行資料庫診斷SQL資料庫
- 使用SQL_TRACE進行資料庫診斷(轉載)SQL資料庫
- 利用 Java dump 進行 JVM 故障診斷JavaJVM
- 使用xhprof進行線上PHP效能追蹤及分析PHP
- AIX_故障診斷_0516-062錯誤AI
- ASM啟動ORA-27125錯誤診斷ASM
- 一次網路連線錯誤的診斷
- 使用SQL_TRACE /10046進行資料庫診斷SQL資料庫
- Java開發者應該知道的五款錯誤跟蹤工具Java