Oracle 啟動非黑盒,而是嚴格的三階段流水線:啟動實例 → 掛載資料庫 → 開啟資料庫。本文歸檔四種啟動模式 (NOMOUNT/MOUNT/OPEN/預設 STARTUP) 對應階段、讀取文件 (參數檔/控制檔/資料檔/Redo Log)、可用操作,並提供實驗驗證步驟、常用參數組合、生產場景指引,構建 DBA 必備的啟動知識庫。
| 模式 | 命令 | 階段 | 讀取文件 | 核心工作 | 典型場景 |
|---|---|---|---|---|---|
| NOMOUNT | STARTUP NOMOUNT | Instance | 參數檔 | 分配 SGA、啟動背景進程 | CREATE DATABASE、CREATE CONTROLFILE、參數修改 |
| MOUNT | STARTUP MOUNT | Instance + Mount | 參數檔 + 控制檔 | 讀取控制檔確認資料檔/Redo Log 路徑 | 歸檔模式切換、RECOVER DATABASE、重命名文件 |
| OPEN | STARTUP OPEN (預設 STARTUP) | Instance + Mount + Open | 參數檔 + 控制檔 + 資料檔 + Redo Log | 校驗一致性、開放服務 | 正常業務 |
| 分步驗證 | STARTUP NOMOUNT → ALTER DATABASE MOUNT → ALTER DATABASE OPEN | 同上 | 同上 | 教學、逐階段故障隔離 | 同上 |
ORA-01078 / LRM-00109。證明 NOMOUNT 僅依賴參數檔。ORA-00205: 證明 MOUNT 依賴控制檔。ORA-01157/01110: 證明 OPEN 依賴資料檔/Redo Log。| 參數 | 作用 | 組合範例 |
|---|---|---|
READ ONLY | 唯讀開啟 (報表/備份一致性) | STARTUP OPEN READ ONLY |
READ WRITE | 讀寫開啟 (預設) | STARTUP READ WRITE |
RESTRICT | 限制模式,僅 RESTRICTED SESSION 權限可連 | STARTUP MOUNT RESTRICT (維護窗口) |
FORCE | 強制關閉現有 Instance 再啟動 (卡住急救) | STARTUP FORCE |
PFILE=path | 指定參數檔 (非預設 $ORACLE_HOME/dbs) | STARTUP PFILE=/tmp/init.ora |
UPGRADE/DOWNGRADE | 升級/降級模式 (運行腳本) | STARTUP UPGRADE |
需求
├─ 建新庫/重建控制檔/改參數 → STARTUP NOMOUNT
├─ 切換歸檔模式/恢復/改文件名 → STARTUP MOUNT
├─ 正常上線 → STARTUP (默認 OPEN)
├─ 唯讀報表庫/邏輯備份一致性點 → STARTUP OPEN READ ONLY
├─ 計劃維護/補丁/統計收集 → STARTUP MOUNT RESTRICT → 維護 → ALTER DATABASE OPEN
├─ Instance 僵死無法 SHUTDOWN → STARTUP FORCE
└─ 非預設參數檔啟動 → STARTUP PFILE=...
STARTUP MOUNT 會執行恢復。正確: 僅掛載,恢復需額外 RECOVER DATABASE。STARTUP NOMOUNT 可查詢數據。正確: 僅有 SGA/進程,無數據字典訪問路徑。RESTRICT 只能配合 MOUNT。正確: 可配合 OPEN (STARTUP RESTRICT 等同 STARTUP OPEN RESTRICT)。啟動模式是 DBA 與資料庫對話的第一句語言。熟記三階段文件依賴、四模式能力邊界、七參數組合場景,能在故障風暴中從容選擇正確切入點,將停機時間壓縮到極致,守護業務連續性的生命線。