Oracle 數據庫的物理架構建立在磁盤文件之上。理解三大核心文件(數據文件、控制文件、聯機重做日志)的角色、參數文件的啟動引導作用、以及啟動三階段(NOMOUNT → MOUNT → OPEN)對文件的依賴順序,是 DBA 進行備份恢復、故障診斷、架構設計的基石。本文構建完整文件架構知識圖譜。
| 類別 | 核心文件 | 寫入進程 | 核心作用 |
|---|---|---|---|
| 數據庫數據文件 | .dbf (數據文件) | DBWn | 存儲表、索引、LOB 等業務數據,關聯表空間 |
| 控制文件 | .ctl | CKPT / LGWR (並發寫) | 數據庫元數據目錄:名稱、文件路徑、SCN、檢查點、備份記錄 |
| 聯機重做日志 | .log (Redo Log) | LGWR | 記錄所有變更向量,支援實例恢復、介質恢復、Data Guard 同步 |
| 參數文件 | spfileSID.ora / initSID.ora | 啟動時讀取 | 實例配置:內存、進程、路徑、啟動參數 |
| 其他相關文件 | Trace、Alert、網絡配置、密碼檔 | 各後台進程 | 診斷、審計、連接配置、認證 |
核心內容:
多路鏡像機制:
CONTROL_FILES 參數指定)| 類型 | 文件名模式 | 位置 | 特點 |
|---|---|---|---|
| SPFILE (Server Parameter File) | spfileSID.ora → spfile.ora | $ORACLE_HOME/dbs (Linux) %ORACLE_HOME%\database (Win) |
二進制、實例可動態修改、持久化、推薦生產使用 |
| PFILE (Parameter File) | initSID.ora → init.ora | 同左 | 文本、唯讀、需重啟生效、備份/遷移友好 |
啟動查找順序:spfileSID.ora → spfile.ora → initSID.ora → init.ora
CONTROL_FILES 路徑、SGA_TARGET 等| 文件 | 用途 | 關鍵配置/位置 |
|---|---|---|
| Alert Log | 實例級關鍵事件日志 (啟動、關閉、錯誤、切換、備份...) | DIAGNOSTIC_DEST/diag/rdbms/ |
| Trace Files | 進程級詳細診斷 (SQL Trace、事件 10046、死鎖、ORA-600...) | 同 Alert 目錄,USER_DUMP_DEST (舊版) |
| tnsnames.ora | 客戶端網絡服務名解析 | $ORACLE_HOME/network/admin / %ORACLE_HOME%\network\admin |
| listener.ora | 監聽器配置 (端口、SID、服務名、ADR...) | 同上 |
| orapwSID (密碼檔) | SYS/SYSDBA 遠程認證 | $ORACLE_HOME/dbs / %ORACLE_HOME%\database |
| Core Dump / Incident | 嚴重錯誤自動收集包 (ORA-600/7445) | DIAGNOSTIC_DEST/diag/.../incident/ |
參數文件 → 控制文件 → (數據文件 + 重做日志) = 完整數據庫
啟動鏈:SPFILE → SGA/進程 → Control File → Datafile/Redo Log → Open
控制文件是橋樑:連接實例配置與物理存儲,必須多路鏡像異地放置
重做日志是命脈:記錄所有變更,支撐恢復、同步、審計
將文件架構內化為「啟動依賴鏈」與「故障定位地圖」,您就能在備份恢復、遷移升級、故障搶修中精準定位文件層面的風險點與操作順序。