Oracle利用errorstack追蹤tomcat報錯ORA-00903 無效表名
現象
tomcat錯誤日誌斷斷續續報ORA-00903: invalid table name,並無具體SQL與表名,需要排查哪段程式碼寫入了無效表名, 可以透過ORACLE提供的errorstack追蹤報錯SQL。 由於生產資料無法取出,以下皆為測試環境測試還原生產錯誤。
errorstack簡介
設定errorstack,在發生特定的ORA錯誤時會記錄發生問題的會話,語句以及各個程式的trace檔案, 在alert日誌中有記錄錯誤記錄的trace檔案位置,也可以給單獨會話開啟errorstack,追蹤會話報錯資訊,可以透過 下面兩個方法開啟: /* level 0 僅轉儲錯誤堆疊 /* level 1 轉儲錯誤堆疊和函式呼叫堆疊 /* level 2 Level 1 + ProcessState /* level 3 Level 2 + Context area (顯示所有cursors,著重顯示當前cursor) (1)alter session/system alter session/system set events '<error_number> trace name errorstack level 3'; /* error_number為ORA錯誤後編號。 (2)oradebug /* 使用oradebug需要使用者具有sysdba許可權 SQL> oradebug setospid/setmypid/setorapid <pid>; SQL> oradebug dump errorstack 3 可以透過下面方法檢視當前系統開啟errorstack狀態: SQL> set serveroutput on SQL> oradebug setmypid SQL> oradebug eventdump session/system;
追蹤
SQL> alter system set events '903 trace name errorstack level 3';
alter日誌:
Tue Jun 09 14:23:44 2020 OS Pid: 10855 executed alter system set events '903 trace name errorstack level 3'
追蹤結果
alert日誌資訊:
Tue Jun 09 14:28:04 2020 Errors in file /u01/app/oracle/diag/rdbms/honor/honor1/trace/honor1_ora_7205.trc: ORA-00903: 表名無效 Tue Jun 09 14:28:06 2020 Dumping diagnostic data in directory=[cdmp_20200609142806], requested by (instance=1, osid=7205), summary=[abnormal process termination].
檢視對應trc追蹤檔案:
*** 2020-06-09 14:28:04.303 *** SESSION ID:(26.661) 2020-06-09 14:28:04.303 *** CLIENT ID:() 2020-06-09 14:28:04.303 *** SERVICE NAME:(honor) 2020-06-09 14:28:04.303 *** MODULE NAME:(SQL*Plus) 2020-06-09 14:28:04.303 *** ACTION NAME:() 2020-06-09 14:28:04.303 dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0) ----- Error Stack Dump ----- ORA-00903: 表å<90><8d>æ<97> æ<95><88> ----- Current SQL Statement for this session (sql_id=0vaqwchf1y3fq) ----- insert into null values(1)
找到具體sql,拿給開發人員,修改相關邏輯,錯誤修復。
關閉errorstack
SQL > alter system set events '903 trace name errorstack off';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2697133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 跟蹤oracle特定報錯 errorstackOracleError
- 利用errorstack事件進行錯誤跟蹤和診斷Error事件
- 使用ErrorStack進行Oracle錯誤跟蹤及診斷ErrorOracle
- 使用ErrorStack進行錯誤跟蹤及診斷Error
- 使用ErrorStack進行錯誤跟蹤及診斷!Error
- 使用ERRORSTACK進行錯誤跟蹤及診斷(轉)Error
- oracle追蹤誤操作DDLOracle
- SQL追蹤和事件追蹤SQL事件
- 利用Zipkin追蹤Mysql資料庫呼叫鏈MySql資料庫
- 利用errorstack event解決問題Error
- SQL物件名無效的解決SQL物件
- Oracle 無效的月份Oracle
- 利用 DeepFlow 為傳統 APM 開啟全棧追蹤能力全棧
- 利用Spring Boot實現微服務的鏈路追蹤Spring Boot微服務
- 深入理解 JavaScript 錯誤和堆疊追蹤JavaScript
- 日誌追蹤
- 程式碼追蹤
- 一個ORACLE死鎖問題的追蹤Oracle
- 線上追蹤壓縮後的JS出錯程式碼JS
- JavaScript 錯誤處理和堆疊追蹤淺析JavaScript
- vscode外掛報錯: problemmatcher 引用無效: $esbuild-watchVSCodeUI
- oracle編譯無效物件Oracle編譯物件
- 如何利用errorstack分析exp或imp問題Error
- 五張圖表追蹤美國經濟重新開放程式
- tomcat釋出報錯Tomcat
- OpenTelemetry分散式追蹤分散式
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- 【Oracle】sys下缺失和無效物件導致exp、expdp和RMAN等備份功能全部報錯Oracle物件
- 安裝Oracle軟體報主機名錯誤Oracle
- 利用神器BTrace 追蹤線上 Spring Boot應用執行時資訊Spring Boot
- APK簽名報錯APK
- 輕量級的分散式日誌追蹤利器,十分鐘即可接入,從此日誌追蹤無難事分散式
- 轉摘_壇友_oracle trace event追蹤事件完全列表Oracle事件
- win10 excel .xlsx檔案格式無效或副檔名無效怎麼辦Win10Excel
- 微服務追蹤SQL(支援Isto管控下的gorm查詢追蹤)微服務SQLGoORM
- Oracle 處理無效物件數Oracle物件
- 經濟研究中心:企業使用AI追蹤報告AI
- 利用行SCN實現表變化跟蹤