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

Oracle 資料庫啟動與關閉模式完整解析:NOMOUNT、MOUNT、OPEN 與四種 SHUTDOWN 差異

     編輯:Oracle 資料庫基礎

啟動與關閉的工具與權限

Oracle 8i 起已將 Server Manager 功能整合至 SQL*Plus,亦可使用 Oracle Enterprise Manager (OEM) 圖形介面。執行啟動/關閉需具備 SYSDBA 權限(通常以 SYS AS SYSDBA 或 INTERNAL 連線,後者新版本將淘汰)。

資料庫啟動三階段

  1. 啟動實例 (NOMOUNT):讀取 init.ora/SPFILE,啟動背景程序,配置 SGA。實例名由 ORACLE_SID 決定,尚未關聯資料庫檔案。
  2. 掛載資料庫 (MOUNT):讀取控制檔,確認資料檔與重做日誌檔位置,但不開啟檔案。適用於維護操作(更名資料檔、啟用歸檔模式等)。
  3. 開啟資料庫 (OPEN):線上資料檔與重做日誌,獲取回滾段/Undo 表空間,進入正常服務狀態。

STARTUP 選項詳細說明

命令執行階段適用場景
STARTUP NOMOUNT僅階段 1建立新資料庫、重建控制檔、特定恢復操作
STARTUP MOUNT階段 1+2資料檔更名、日檔管理、啟用/關閉歸檔、完整備份
STARTUP (預設)階段 1+2+3正常生產環境啟動
STARTUP RESTRICT完整開啟但限制連線僅允許 RESTRICTED SESSION 權限用戶 (DBA) 連線,適合資料匯入/匯出、維護
STARTUP FORCESHUTDOWN ABORT + STARTUP資料庫無法正常關閉時的強制重啟
ALTER DATABASE OPEN READ ONLYMOUNT 後唯讀開啟唯讀報表、資料倉庫查詢

分階段啟動的手動控制

-- 若已 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:需等待所有使用者主動登出,不可控風險高。

常見錯誤與最佳實務

  1. 嘗試在 MOUNT 狀態下執行 DDL 操作資料檔 → 需先 OPEN 或使用特定 ALTER DATABASE 子句。
  2. 忘記以 SYSDBA 連線 → ORA-01031 權限不足。
  3. SPFILE 與 PFILE 混淆 → 啟動時可指定 STARTUP PFILE=/path/init.ora。
  4. 關閉前未備份控制檔/參數檔 → 變更後務必備份。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved