關閉 Oracle 資料庫非單一操作,三種模式對應不同業務場景與恢復成本。正確選擇可避免不必要的啟動恢復時間與資料風險。
| 模式 | 指令 | 等待現有連線 | 回滾未提交交易 | 檢查點/同步 | 下次啟動恢復 | 適用場景 |
|---|---|---|---|---|---|---|
| 正常 | SHUTDOWN NORMAL | 是(無限等待) | 否(需客戶端自行 COMMIT/ROLLBACK) | 完整 Checkpoint | 無需恢復 | 計畫性維護、無緊迫時間壓力 |
| 立即 | SHUTDOWN IMMEDIATE | 否(強制斷開) | 是(自動回滾) | 完整 Checkpoint | 自動執行個體恢復(快) | 緊急維護、應用升級、備份前 |
| 中止 | SHUTDOWN ABORT | 否(直接終止進程) | 否(留給下次啟動恢復) | 無 | 需執行個體恢復(慢,需前滾/回滾) | 系統當機、無法正常關閉、極端緊急 |
-- 以 SYSDBA 登入
CONN / AS SYSDBA
-- 正常關閉(建議搭配設定等待上限)
SHUTDOWN NORMAL;
-- 緊急關閉(最常用)
SHUTDOWN IMMEDIATE;
-- 極端中止(最後手段)
SHUTDOWN ABORT;
STARTUP 僅需執行個體恢復(讀取 Redo Log 前滾),通常秒級完成。SHUTDOWN IMMEDIATE 掛住無反應、或作業系統即將斷電時使用。SHUTDOWN TRANSACTIONAL; -- 等待所有交易完成(不含只讀查詢),然後關閉
SHUTDOWN TRANSACTIONAL LOCAL; -- 僅等待本執行個體交易,RAC 適用
介於 NORMAL 與 IMMEDIATE 之間:允許進行中交易完成,但不等待純查詢 Session。
SELECT STATUS FROM V$INSTANCE; → OPENSELECT * FROM V$RECOVER_FILE; → 無列(無需媒體恢復)ALERT.LOG 確認無 ORA-01113、ORA-01110 等媒體恢復錯誤。牢記:「平時用 IMMEDIATE,計畫用 NORMAL/TRANSACTIONAL,絕境用 ABORT」,並養成關閉後驗證習慣,讓資料庫每一次啟動都在掌控之中。