Oracle 執行個體啟動分為三個階段:NOMOUNT、MOUNT、OPEN,每階段開放不同管理操作。本文詳細對比三模式的記憶體/進程/檔案狀態、可執行操作、典型應用場景,並提供等價手動指令,助你精準選擇啟動模式完成維護任務。
| 階段 | 指令 | SGA/背景進程 | 控制檔 | 資料檔/Redo Log | 典型用途 |
|---|---|---|---|---|---|
| NOMOUNT | STARTUP NOMOUNT | 已啟動 | 未開啟 | 未開啟 | 建立控制檔、建立資料庫、恢復控制檔、修改參數檔 |
| MOUNT | STARTUP MOUNT 或 ALTER DATABASE MOUNT | 已啟動 | 已開啟(讀取) | 未開啟(僅驗證路徑) | 歸檔模式切換、媒體恢復、資料檔/Redo Log 離線/上線、重新定位檔案 |
| OPEN | STARTUP (預設) 或 ALTER DATABASE OPEN | 已啟動 | 已開啟 | 全部開啟(正常存取) | 正常業務存取、查詢、DML、DDL |
-- STARTUP 等價於以下三條指令序列
STARTUP NOMOUNT;
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
理解此鏈路,可在任一階段中斷、執行特定操作、再繼續下一階段。
CREATE CONTROLFILE ...(控制檔遺失/損壞/重命名資料庫)。CREATE DATABASE ...(僅在 NOMOUNT 可執行)。RESTORE CONTROLFILE FROM '...'; (RMAN)。PFILE,下次啟動生效。ALTER DATABASE ARCHIVELOG;
ALTER DATABASE NOARCHIVELOG;
RECOVER DATABASE;
RECOVER TABLESPACE users;
RECOVER DATAFILE '/u01/app/oracle/oradata/users01.dbf';
ALTER DATABASE DATAFILE '...' OFFLINE/ONLINE;
ALTER DATABASE RENAME FILE 'old' TO 'new';
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
ALTER DATABASE OPEN READ ONLY:唯讀開啟(報表/備份驗證)。ALTER DATABASE OPEN UPGRADE/DOWNGRADE:升級/降級模式。| 模式 | 指令 | 用途 |
|---|---|---|
| READ ONLY | STARTUP MOUNT; ALTER DATABASE OPEN READ ONLY; | 報表查詢、邏輯備份驗證、Standby 開啟驗證 |
| RESTRICT | STARTUP RESTRICT | 僅允許 RESTRICTED SESSION 權限使用者連線,適合維護窗口 |
| FORCE | STARTUP FORCE | 強制關閉現有實例 (SHUTDOWN ABORT) 再完整啟動,處理掛起實例 |
| UPGRADE | STARTUP UPGRADE | 資料庫升級腳本執行期間 |
| 關閉指令 | 對應啟動階段 | 特點 |
|---|---|---|
SHUTDOWN NORMAL | OPEN | 等待所有使用者斷線,無新連線,檢查點正常 |
SHUTDOWN TRANSACTIONAL | OPEN | 等待進行中交易完成,不等待空閒會話 |
SHUTDOWN IMMEDIATE | OPEN | 回滾未提交交易、斷開所有會話、檢查點正常,最常用 |
SHUTDOWN ABORT | NOMOUNT | 立即終止進程、不檢查點、下次啟動需執行個體恢復,緊急時用 |
STARTUP NOMOUNTSTARTUP MOUNTSTARTUP (OPEN)STARTUP RESTRICTSTARTUP FORCE精通三階段啟動模式與對應操作,是 DBA 從「會啟動資料庫」進階到「精準控制資料庫狀態」的關鍵技能。將本文對照表貼在機房操作手冊,關鍵時刻一眼定乾坤。