資料庫啟動經歷 NOMOUNT→MOUNT→OPEN 三階段,關閉則為 CLOSE→DISMOUNT→SHUTDOWN。本文詳細解析四種關閉模式差異、適用場景與內部機制。
SQL> ALTER DATABASE CLOSE; Database altered. -- Alert Log: Stopping background processes, SMON disabling cache recovery, ARCH shutting down SQL> ALTER DATABASE DISMOUNT; Database altered. -- Alert Log: Completed: alter database dismount SQL> SHUTDOWN; ORACLE instance shut down. -- Alert Log: Shutting down instance (normal), Instance shutdown complete
| 模式 | 指令 | 新連線 | 現有交易 | 檢查點 | 下次啟動 | 適用場景 |
|---|---|---|---|---|---|---|
| NORMAL | SHUTDOWN [NORMAL] | 拒絕 | 等待全部提交/回滾 | 執行 | 無需恢復 | 維護窗口、無緊急 |
| TRANSACTIONAL | SHUTDOWN TRANSACTIONAL | 拒絕 | 等待進行中交易完成 | 執行 | 無需恢復 | 業務緩慢停機 |
| IMMEDIATE | SHUTDOWN IMMEDIATE | 拒絕 | 強制回滾未提交 | 執行 | 無需恢復 | 最常用、生產標準 |
| ABORT | SHUTDOWN ABORT | 拒絕 | 立即終止、不回滾 | 不執行 | 需實例恢復 | 緊急、掛死、備份前 |
-- IMMEDIATE ALTER DATABASE CLOSE NORMAL Completed: ALTER DATABASE CLOSE NORMAL ... checkpoint completed ... -- ABORT Shutting down instance (abort) Instance shutdown complete -- 下次啟動 Starting ORACLE instance (normal) ... Beginning crash recovery of 1 threads Completed crash recovery
SHUTDOWN IMMEDIATESHUTDOWN IMMEDIATESHUTDOWN ABORT → STARTUP(接受恢復時間)SHUTDOWN IMMEDIATE(確保一致性)或 ABORT(極趕時間)NORMAL、TRANSACTIONAL 生產常態