| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-12571 ORA-03113 ORA-03114 ORA-01041 | Client 偶發/頻發「端點斷開」 | 偶發:網路抖動、Client 異常中斷 頻發:字符集不一致、TCP 參數 | 1. 偶發:PROTOCOL.ORA 加 TCP.NODELAY=YES2. 頻發:統一 Client/Server NLS_LANG (註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG)3. Client 註冊表 TCPMAXDATARETRANSMITIONS=20 |
| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-01000 | 超過最大開啟游標數 | 應用未關閉游標、OPEN_CURSORS 過小 | 1. INIT.ORA 設 OPEN_CURSORS=500 (建議 ≥300)2. 應用層確保 ResultSet/Statement.close()3. 連線池設定 MAXOPENCURSORS |
| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-01545 | 指定回滾段不可用 | 表空間離線、重複 ONLINE、刪除時有活動事務 | 1. 確保表空間 ONLINE 2. INIT.ORA 移除 ROLLBACK_SEGMENTS 指定3. 刪除表空間連帶移除 |
| ORA-01555 | Snapshot too old | 回滾段過小/過少、交叉提交、長查詢遇高 DML | 1. 增加 UNDO 表空間大小/保留時間 (UNDO_RETENTION)2. 避免 FOR UPDATE 長事務3. 大查詢離峰執行、啟用保留保證 |
| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-0165x | 表空間無法分配區 | 表空間滿、NEXT 過小、空間碎片 | 1. 新增資料檔/啟用 AUTOEXTEND 2. 調大 INITIAL/NEXT 3. ALTER TABLESPACE ... COALESCE 整理碎片4. 查詢 DBA_FREE_SPACE 定位碎片 |
| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-04031 | Shared Pool 無法分配記憶體 | 記憶體不足、碎片化、大包/存儲過程 | 1. 增加 SHARED_POOL_SIZE2. ALTER SYSTEM FLUSH SHARED_POOL 緊急釋放3. 使用綁定變數減少硬解析 4. DBMS_SHARED_POOL.KEEP 釘住熱門物件 |
| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-04091 | 觸發器變異表 | Row-level Trigger 讀/改正在 DML 的表 | 1. 改為 Statement-level Trigger 2. 用 Compound Trigger (11g+) 隔離狀態 3. 重構業務邏輯避免自我引用 |
| 錯誤 | 特徵 | 根因 | 解決方案 |
|---|---|---|---|
| ORA-01242 ORA-01113 | 資料檔損壞導致資料庫崩潰 | 磁碟故障、檔案系統錯誤、誤刪 | 1. 硬體層面排查 (RAID、SMART、備份) 2. 修改 DBSHUT 腳本:STARTUP OPEN RECOVERALTER DATABASE OPEN3. 依備份策略執行介質恢復 |
OERR ORA <錯誤號> 官方說明
4. 依根因分類套用標準解決方案
5. 事後複盤:監控、預警、容量規劃