利用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
- Oracle利用errorstack追蹤tomcat報錯ORA-00903 無效表名OracleErrorTomcat
- SQLServer進行SQL跟蹤SQLServer
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- 如何透過鏈路追蹤進行定時任務診斷
- 【ORA】ORA-12547 TNS: Lost Contact錯誤診斷
- Oracle診斷事件列表(轉)Oracle事件
- 免費網站seo診斷:從哪些維度進行診斷呢?網站
- 用10046進行診斷一例
- Spring Cloud Sleuth 和 Zipkin 進行分散式跟蹤使用指南SpringCloud分散式
- 除錯跟蹤利器---strace除錯
- oracle跟蹤常用內部事件號Oracle事件
- 【ORA-】ORA-12547: TNS:lost contact錯誤的跟蹤分析
- 使用OpenCV進行ROS 2的循線跟蹤OpenCVROS
- 利用performance_schema進行故障診斷(mysql金字塔法則讀書筆記)ORMMySql筆記
- 如何在非同步結果返回時進行跟蹤非同步
- 教程直播第7期|如何對 OceanBase 進行 SQL 診斷和調優SQL
- 跟蹤執行命令T
- 基於等待事件的效能診斷(轉)事件
- 如何利用 Webshell 診斷 EDAS Serverless 應用WebshellServer
- 使用SQL_TRACE進行資料庫診斷(轉)SQL資料庫
- [20190917]oracle跟蹤事件簡單寫法.txtOracle事件
- Java執行緒診斷Java執行緒
- git的跟蹤分支和遠端跟蹤分支學習筆記Git筆記
- 學界 | 吳恩達團隊最新:利用MRNet進行膝關節磁共振成像輔助診斷吳恩達
- 以藍軍視角跟蹤和分析CANVAS攻擊框架洩露事件Canvas框架事件
- Sentry實時應用錯誤跟蹤系統在Kubernetes中私有化部署
- 使用 SOS 對 Linux 中執行的 .NET Core 進行問題診斷Linux
- 利用Decorator和SourceMap優化JavaScript錯誤堆疊優化JavaScript
- 【譯】.NET 5 中的診斷改進
- 使用 Python 和 Prometheus 跟蹤天氣PythonPrometheus
- 跟我學SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤SpringGCCloud分散式
- 光纖故障診斷和故障排查
- 使用describe命令進行Kubernetes pod錯誤排查
- oracle 12c 新增的診斷事件的初步嘗試Oracle事件
- 美國邊境官員測試區塊鏈進行證書跟蹤區塊鏈
- 樹莓派利用OpenCV的影像跟蹤、人臉識別等樹莓派OpenCV
- jps、jmap、jstack已經Out了,使用jcmd進行JVM效能和記憶體跟蹤微調 -DZone JavaJSJVM記憶體Java