Oracle 資料庫啟動非一蹴而可,而是分階段推進:啟動執行個體 → 掛載資料庫 → 開啟資料庫。理解四種啟動模式(NOMOUNT、MOUNT、OPEN、預設 STARTUP)的差異、可執行操作、讀取檔案順序,是 DBA 進行備份恢復、結構變更、故障排查的必修課。
| 模式 | 命令 | 階段 | 讀取檔案 | 主要用途 | 可用操作 |
|---|---|---|---|---|---|
| NOMOUNT | STARTUP NOMOUNT | 啟動 Instance | 參數檔 | 建立資料庫、重建控制檔、僅啟動 SGA/背景進程 | CREATE DATABASE、CREATE CONTROLFILE、參數修改 |
| MOUNT | STARTUP MOUNT | Instance + Mount DB | 參數檔 + 控制檔 | 歸檔模式切換、資料庫恢復、重命名資料檔/Redo Log | ALTER DATABASE ARCHIVELOG/NOARCHIVELOG、RECOVER DATABASE、RENAME FILE |
| OPEN | STARTUP OPEN (預設 STARTUP) | Instance + Mount + Open DB | 參數檔 + 控制檔 + 資料檔 + Redo Log | 正常業務服務 | 所有用戶存取、DML/DDL、查詢 |
| 完整拆解 | STARTUP NOMOUNTALTER DATABASE MOUNTALTER DATABASE OPEN | 同上 | 同上 | 教學演示、逐階段故障排查 | 同上 |
修改/刪除控制檔、資料檔,STARTUP NOMOUNT 仍成功 (SGA 分配、背景進程啟動)。
缺少參數檔 → ORA-01078 / LRM-00109。
NOMOUNT 狀態下 ALTER DATABASE MOUNT:控制檔缺失/損壞 → ORA-00205。
修正控制檔路徑後 MOUNT 成功,資料檔異常不報錯。
MOUNT 狀態下 ALTER DATABASE OPEN:資料檔缺失 → ORA-01157 / ORA-01110。
Redo Log 缺失/損壞 → ORA-00313 等。
READ ONLY:唯讀開啟 (報表/備份一致性)。READ WRITE:讀寫開啟 (預設)。RESTRICT:限制模式,僅 RESTRICTED SESSION 權限用戶可連線 (維護窗口)。FORCE:強制關閉現有 Instance 再啟動 (卡住時急救)。PFILE=path:指定參數檔 (非預設位置)。組合範例:STARTUP MOUNT RESTRICT、STARTUP OPEN READ ONLY。
SHUTDOWN IMMEDIATE → STARTUP MOUNT → 維護 → ALTER DATABASE OPEN。SHUTDOWN ABORT 後,啟動可能需 RECOVER DATABASE UNTIL CANCEL (MOUNT 狀態下)。MOUNT 或 OPEN READ ONLY 運行應用 Redo。啟動模式非單一選項,而是 DBA 手中精準的手術刀。熟記各階段讀取檔案、可用操作、典型場景,臨危不亂,從容駕馭資料庫生命週期的每一個狀態轉換。