一、三類追蹤文件
| 類型 | 生成主體 | 觸發條件 | 存放目錄參數 | 文件命名 |
| 後台報警日志 | 後台進程 | 啟動/關閉/結構變更/錯誤/日志切換 | BACKGROUND_DUMP_DEST | SIDALRT.LOG |
| 後台追蹤文件 | DBWR/LGWR/SMON 等 | 進程異常/內部錯誤/特定事件 | BACKGROUND_DUMP_DEST | sid_dbwr.trc, sid_smon.trc |
| 用戶追蹤文件 | 服務器進程 (專用/共享) | 會話報錯 / 手動設置 EVENT | USER_DUMP_DEST | ora_.trc |
故障排查首選:Alert Log(報警日志),但信息與具體錯誤無必然對應,需結合追蹤文件分析。
二、設置追蹤事件兩種方式
1. 參數文件靜態設置(影響所有會話,需重啟)
# init.ora / spfile
EVENT = "10046 TRACE NAME CONTEXT FOREVER, LEVEL 12 : 10235 TRACE NAME CONTEXT FOREVER, LEVEL 1"
-- 多事件用冒號分隔,或寫多行 EVENT = "..."
2. 會話級動態設置(即時生效,僅當前會話)
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
-- 或立即轉儲
ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME ERRORSTACK LEVEL 3';
三、語法要素詳細解析
[event_number | IMMEDIATE] TRACE NAME event_name [FOREVER] [, LEVEL level_number] : ...
| 元素 | 說明 |
event_number | 觸發轉儲的事件號:Oracle 錯誤號(如 10046、10235)或內部事件號(10000~10999)。不可與 IMMEDIATE 同用。 |
IMMEDIATE | 立即轉儲關鍵字,僅用於 ALTER SESSION,不可與 event_number、FOREVER 同用。 |
TRACE NAME | 固定關鍵字。 |
event_name | 要轉儲的結構名:CONTEXT(按內部事件號)、ERRORSTACK(錯誤堆疊)、SYSTEMSTATE(系統狀態)、CALLSTACK(調用棧)、FILE_HDRS(文件頭) 等。 |
FOREVER | 持久化標記:實例/會話生命週期內持續有效。不可與 IMMEDIATE 同用。 |
LEVEL level_number | 轉儲詳細度:1~10(1=僅頭部,10=全量)。ERRORSTACK 無 LEVEL。 |
四、常用事件速查
| 事件號 | 用途 | 典型 LEVEL |
| 10046 | SQL 追蹤 (等同 SQL_TRACE=TRUE) | 1=基本, 4=綁定變量, 8=等待事件, 12=4+8 |
| 10053 | CBO 優化器決策追蹤 | 1~2 |
| 10235 | 內存管理器追蹤 | 1 |
| 10210/10211/10212 | Heap/Process/Call 堆疊轉儲 | 1 |
| IMMEDIATE | 立即轉儲 ERRORSTACK/SYSTEMSTATE | LEVEL 1~3 (ERRORSTACK) |
五、實戰案例
- 會話級 10046 追蹤:
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
-- 執行目標 SQL
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';
用 tkprof 格式化輸出分析。
- 捕獲間歇性 ORA-04031:
-- spfile
EVENT = "4031 TRACE NAME ERRORSTACK FOREVER, LEVEL 3"
-- 重啟後,每次 ORA-4031 自動在 USER_DUMP_DEST 生成錯誤堆疊
- 立即獲取系統狀態(掛起分析):
ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 10';
六、注意事項
- 追蹤文件佔用磁盤空間大,開啟後必須設置提醒關閉或限制大小(
MAX_DUMP_FILE_SIZE)。
- 11g+ 推薦使用
DBMS_MONITOR.SESSION_TRACE_ENABLE 替代 EVENT 10046。
- 生產環境慎用
LEVEL 10 或 SYSTEMSTATE,可能加劇性能抖動。