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

Oracle 啟動階段全解析:NOMOUNT/MOUNT/OPEN 流程與參數文件/控制文件/數據文件讀取順序

     編輯:Oracle 資料庫基礎

三大啟動模式

模式命令完成動作讀取文件
NOMOUNTSTARTUP NOMOUNT啟動實例(SGA + 背景進程)參數文件 (PFILE/SPFILE)
MOUNTSTARTUP MOUNT掛載資料庫(讀取控制文件)參數文件 + 控制文件
OPENSTARTUP OPEN (默認)打開資料庫(線上數據文件/重做日志)參數文件 + 控制文件 + 數據文件

常用組合參數

  • READ ONLY / READ WRITE:唯讀/讀寫打開。
  • RESTRICT:僅允許 RESTRICTED SESSION 權限用戶連接(維護專用)。
  • FORCE:強制關閉後重新啟動(相當於 SHUTDOWN ABORT + STARTUP OPEN)。
  • 可組合:STARTUP MOUNT RESTRICT、STARTUP OPEN READ ONLY 等。

實驗驗證:文件讀取順序與依賴關係

1. NOMOUNT 階段:僅讀參數文件

-- 修改參數文件名模擬缺失
MV initorcl.ora initorcl1.ora
MV spfileorcl.ora spfileorcl1.ora

SQL> STARTUP NOMOUNT
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '.../initorcl.ora'
-- 結論:NOMOUNT 強依賴參數文件

2. NOMOUNT 不讀控制文件

-- 恢復參數文件,修改控制文件名
MV control01.ctl control01a.ctl ...

SQL> STARTUP NOMOUNT
ORACLE instance started.  -- 成功!
-- 結論:NOMOUNT 階段不讀控制文件

3. MOUNT 階段:讀控制文件,不讀數據文件

SQL> ALTER DATABASE MOUNT;
ORA-00205: error in identifying controlfile
-- 修正控制文件名後
SQL> STARTUP MOUNT
Database mounted.  -- 成功,即使數據文件被重命名
-- 結論:MOUNT 依賴控制文件,不檢查數據文件

4. OPEN 階段:必須讀取數據文件

SQL> ALTER DATABASE OPEN;
ORA-01157: cannot identify/lock data file 5
ORA-01110: data file 5: '.../tp_test.dbf'
-- 結論:OPEN 階段校驗所有數據文件

階段適用場景

  1. NOMOUNT:控制文件全部損壞需重建(CREATE CONTROLFILE)、創建新資料庫。
  2. MOUNT:修改歸檔模式(ALTER DATABASE ARCHIVELOG)、執行完整恢復(RECOVER DATABASE)、啟用/禁用歸檔。
  3. OPEN:正常業務服務。

總結圖解

NOMOUNT  -->  MOUNT  -->  OPEN
(參數文件)    (控制文件)    (數據文件)
  實例啟動      資料庫掛載     業務開放
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved