首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 資料庫關閉四大模式深度解析:Normal、Immediate、Transactional、Abort

     編輯:Oracle 教學

Oracle 資料庫關閉四大模式深度解析:Normal、Immediate、Transactional、Abort

資料庫啟動經歷 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

四種模式對照表

模式指令新連線現有交易檢查點下次啟動適用場景
NORMALSHUTDOWN [NORMAL]拒絕等待全部提交/回滾執行無需恢復維護窗口、無緊急
TRANSACTIONALSHUTDOWN TRANSACTIONAL拒絕等待進行中交易完成執行無需恢復業務緩慢停機
IMMEDIATESHUTDOWN IMMEDIATE拒絕強制回滾未提交執行無需恢復最常用、生產標準
ABORTSHUTDOWN ABORT拒絕立即終止、不回滾不執行需實例恢復緊急、掛死、備份前

模式詳細行為

1. SHUTDOWN NORMAL(預設)

  • 等待**所有用戶主動斷開**
  • 大量連接環境可能**永遠等不完**
  • 生產幾乎不可用

2. SHUTDOWN TRANSACTIONAL

  • 不等用戶斷開,但等**當前交易結束**
  • 長交易會阻塞關閉
  • 較 NORMAL 稍優,但仍不推薦生產常態

3. SHUTDOWN IMMEDIATE(推薦)

  • **立即中斷**正在處理的 SQL
  • **回滾**所有未提交交易
  • **執行檢查點**(CKPT 將 dirty buffer 刷盤)
  • 關閉資料檔、Redo Log、Controlfile
  • 下次啟動**無需實例恢復**,最快穩妥
  • 注意:大量未提交交易回滾也需時間

4. SHUTDOWN ABORT(緊急)

  • 相當於**拔電源**
  • 不回滾、不檢查點、不關閉檔案
  • 下次啟動**必須實例恢復**(SMON 前滾 Redo、回滾 Undo)
  • 恢復時間不可控,大庫可能極久
  • 極端情況才用:實例掛死、備份前需一致性快照

Alert Log 關鍵差異

-- 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

最佳實踐建議

  1. 標準停機:SHUTDOWN IMMEDIATE
  2. 計劃維護:提前通知 → 關閉應用 → SHUTDOWN IMMEDIATE
  3. 緊急掛死:SHUTDOWN ABORT → STARTUP(接受恢復時間)
  4. 冷備份前:SHUTDOWN IMMEDIATE(確保一致性)或 ABORT(極趕時間)
  5. 避免:NORMAL、TRANSACTIONAL 生產常態

參考資源

  • Oracle Database Administrator's Guide - Starting Up and Shutting Down
  • Remote DBA Team - Oracle Database Startup & Shutdown Process
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved