啟動與關閉的工具與權限
Oracle 8i 起已將 Server Manager 功能整合至 SQL*Plus,亦可使用 Oracle Enterprise Manager (OEM) 圖形介面。執行啟動/關閉需具備 SYSDBA 權限(通常以 SYS AS SYSDBA 或 INTERNAL 連線,後者新版本將淘汰)。
資料庫啟動三階段
- 啟動實例 (NOMOUNT):讀取
init.ora/SPFILE,啟動背景程序,配置 SGA。實例名由 ORACLE_SID 決定,尚未關聯資料庫檔案。
- 掛載資料庫 (MOUNT):讀取控制檔,確認資料檔與重做日誌檔位置,但不開啟檔案。適用於維護操作(更名資料檔、啟用歸檔模式等)。
- 開啟資料庫 (OPEN):線上資料檔與重做日誌,獲取回滾段/Undo 表空間,進入正常服務狀態。
STARTUP 選項詳細說明
| 命令 | 執行階段 | 適用場景 |
| STARTUP NOMOUNT | 僅階段 1 | 建立新資料庫、重建控制檔、特定恢復操作 |
| STARTUP MOUNT | 階段 1+2 | 資料檔更名、日檔管理、啟用/關閉歸檔、完整備份 |
| STARTUP (預設) | 階段 1+2+3 | 正常生產環境啟動 |
| STARTUP RESTRICT | 完整開啟但限制連線 | 僅允許 RESTRICTED SESSION 權限用戶 (DBA) 連線,適合資料匯入/匯出、維護 |
| STARTUP FORCE | SHUTDOWN ABORT + STARTUP | 資料庫無法正常關閉時的強制重啟 |
| ALTER DATABASE OPEN READ ONLY | MOUNT 後唯讀開啟 | 唯讀報表、資料倉庫查詢 |
分階段啟動的手動控制
-- 若已 STARTUP NOMOUNT
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
-- 若已 STARTUP MOUNT
ALTER DATABASE OPEN;
關閉模式 (SHUTDOWN) 四種模式對比
| 特性 | ABORT (A) | IMMEDIATE (I) | TRANSACTIONAL (T) | NORMAL (N) |
| 允許新連線 | 否 | 否 | 否 | 否 |
| 等待現有 Session 結束 | 否 | 否 | 否 | 是 |
| 等待進行中 Transaction 完成 | 否 | 否 (強制回滾) | 是 | 是 |
| 強制 Checkpoint 並關閉檔案 | 否 | 是 | 是 | 是 |
| 下次啟動需執行執行個體恢復 | 是 | 否 | 否 | 否 |
| 典型耗時 | 立即 | 秒~分 (視回滾量) | 分~時 (視長交易) | 不定 (可能數天) |
| 建議使用時機 | 緊急、掛死、實例恢復測試 | 例行維護、快速關閉 | 計劃性關閉、保護長交易 | 極少用、無時間壓力 |
模式選擇指引
- 生產環境例行關閉:優先
SHUTDOWN IMMEDIATE,平衡速度與資料一致性。
- 計劃性維護窗口:
SHUTDOWN TRANSACTIONAL 讓長交易自然完成,再轉 IMMEDIATE。
- 資料庫掛死/無法連線:
SHUTDOWN ABORT 為最後手段,啟動後自動執行執行個體恢復。
- 極少使用 NORMAL:需等待所有使用者主動登出,不可控風險高。
常見錯誤與最佳實務
- 嘗試在 MOUNT 狀態下執行 DDL 操作資料檔 → 需先 OPEN 或使用特定 ALTER DATABASE 子句。
- 忘記以
SYSDBA 連線 → ORA-01031 權限不足。
- SPFILE 與 PFILE 混淆 → 啟動時可指定
STARTUP PFILE=/path/init.ora。
- 關閉前未備份控制檔/參數檔 → 變更後務必備份。