八大模式一覽表
| 模式 | 命令語法 | 核心階段 | 關鍵特性 | 典型使用場景 |
| 1. NOMOUNT | STARTUP NOMOUNT | Instance 啟動 (SGA + 背景進程) | 僅讀取參數檔,不訪問控制檔/資料檔 | CREATE CONTROLFILE、CREATE DATABASE、恢復控制檔 |
| 2. MOUNT | STARTUP MOUNT | + 掛載控制檔 | 讀取控制檔驗證檔案路徑,不打開資料檔 | 切換歸檔模式、介質恢復、資料檔/日誌檔離線/重命名/移動 |
| 3. OPEN | STARTUP / STARTUP OPEN | + 打開資料檔/日誌檔 | 完整業務可用,執行崩潰恢復 (如需) | 日常生產運行 |
| 4. READ ONLY | STARTUP OPEN READ ONLY | + 唯讀開啟 | 禁止 DML/DDL,允許 SELECT | Standby 查詢、報表庫、唯讀備份 |
| 5. RESTRICT | STARTUP RESTRICT | + 僅限 RESTRICTED SESSION 權限 | 阻擋普通用戶,ORA-01035 | 維護窗口、資料遷移、補丁、大批量載入 |
| 6. FORCE | STARTUP FORCE | SHUTDOWN ABORT + STARTUP | 強制重啟,不等待正常關閉 | Instance 掛死、共享記憶體殘留、緊急恢復 |
| 7. PFILE 指定 | STARTUP PFILE=/path/init.ora | 讀取指定參數檔啟動 | 覆蓋預設 SPFILE/PFILE 路徑 | 參數調優測試、多實例切換、參數檔損壞恢復 |
| 8. EXCLUSIVE | STARTUP EXCLUSIVE | 獨佔模式掛載 (RAC/Parallel Server) | 單實例獨佔資料庫,阻止其他實例掛載 | RAC 環境下維護、冷備份、參數變更 |
等價關係與遞進關係
STARTUP
≡ STARTUP NOMOUNT
ALTER DATABASE MOUNT
ALTER DATABASE OPEN
STARTUP MOUNT
≡ STARTUP NOMOUNT
ALTER DATABASE MOUNT
STARTUP OPEN
≡ STARTUP MOUNT
ALTER DATABASE OPEN
各模式可執行操作權限矩陣
| 操作 | NOMOUNT | MOUNT | OPEN | RESTRICT | READ ONLY |
| 建立/重建控制檔 | ✓ | ✗ | ✗ | ✗ | ✗ |
| 建立資料庫 | ✓ | ✗ | ✗ | ✗ | ✗ |
| 切換歸檔模式 | ✗ | ✓ | ✗ | ✓ | ✗ |
| 介質恢復 (RECOVER) | ✗ | ✓ | ✗ | ✓ | ✗ |
| 資料檔/日誌檔離線/聯機/重命名 | ✗ | ✓ | ✗ | ✓ | ✗ |
| 正常 DML/DDL | ✗ | ✗ | ✓ | ✓ (限特權用戶) | ✗ |
| 查詢 (SELECT) | ✗ | ✗ | ✓ | ✓ | ✓ |
實戰操作範例
場景 1:參數調優測試 (不影響生產 SPFILE)
-- 1. 複製當前 SPFILE 到 PFILE
CREATE PFILE='/tmp/test_init.ora' FROM SPFILE;
-- 2. 編輯 /tmp/test_init.ora 修改參數
-- 3. 關閉資料庫 (維護窗口)
SHUTDOWN IMMEDIATE;
-- 4. 以測試參數啟動
STARTUP PFILE=/tmp/test_init.ora;
-- 5. 驗證效果,滿意則創建新 SPFILE
CREATE SPFILE FROM PFILE='/tmp/test_init.ora';
-- 6. 重啟生效
SHUTDOWN IMMEDIATE; STARTUP;
場景 2:RAC 環境單實例維護
-- 節點 1 以獨佔模式啟動進行維護
STARTUP EXCLUSIVE;
-- 執行維護操作...
SHUTDOWN IMMEDIATE;
-- 其餘節點正常啟動
STARTUP;
場景 3:緊急強制重啟
-- Instance 無響應,無法正常 SHUTDOWN
STARTUP FORCE;
-- 等同於:
SHUTDOWN ABORT;
STARTUP;
常見錯誤與對策
| 錯誤 | 原因 | 解決 |
| ORA-01035 | RESTRICT 模式下普通用戶連線 | GRANT RESTRICTED SESSION TO user; 或 ALTER SYSTEM DISABLE RESTRICTED SESSION; |
| ORA-01102 | 資料庫已被其他實例掛載 (RAC) | 確認集群狀態,使用 EXCLUSIVE 或協調其他實例 SHUTDOWN |
| ORA-00205 | 控制檔路徑錯誤/權限不足 | 檢查 control_files 參數、檔案存在性、Oracle 用戶權限 |
| ORA-01157 | 資料檔無法識別/鎖定 | 檢查檔案路徑、ASM 磁碟組掛載、權限、是否被其他進程佔用 |