數據庫啟動/關閉是 DBA 日常核心操作。本文系統梳理 SQL*Plus 環境下各啟動模式(NOMOUNT/MOUNT/OPEN/RESTRICT/FORCE/PFILE)、雙機環境 HA 命令、關閉模式,並對比 8i/9i+ 差異,構建完整操作知識庫。
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
-- 或
SQL> CONNECT sys/password AS SYSDBA
| 命令 | 階段 | 可執行操作 | 適用場景 |
|---|---|---|---|
STARTUP NOMOUNT | 僅啟動實例 (SGA+進程) | 創建控制文件、創建數據庫、恢復控制文件 | 只需 PFILE/SPFILE |
STARTUP MOUNT | 實例 + 掛載控制文件 | 歸檔模式切換、介質恢復、數據文件/Redo Log 聯機脫機/重定位 | 不校驗數據文件一致性 |
STARTUP OPEN | 實例 + 掛載 + 打開所有文件 | 正常業務訪問 | 默認模式 (STARTUP 等價) |
STARTUP RESTRICT | OPEN + 僅允許 RESTRICTED SESSION 權限用戶 | 維護窗口、數據遷移、補丁升級 | 排除普通用戶干擾 |
STARTUP FORCE | 強制關閉(ABORT) + 正常啟動 | 實例掛起無法正常關閉時 | 緊急恢復 |
STARTUP PFILE=path | 指定參數文件啟動 | 參數文件損壞/測試新參數 | 覆蓋默認 SPFILE |
STARTUP
≡
STARTUP NOMOUNT
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
| 命令 | 行為 | 適用場景 |
|---|---|---|
SHUTDOWN NORMAL | 等待所有用戶斷開,不允許新連接 | 計劃維護 |
SHUTDOWN TRANSACTIONAL | 等待活躍事務提交/回滾,不允許新事務 | 業務平滑切換 |
SHUTDOWN IMMEDIATE | 回滾未提交事務,斷開所有會話,不執行檢查點 | 最常用,快速關閉 |
SHUTDOWN ABORT | 立即終止實例,不關閉文件,下次啟動需實例恢復 | 緊急情況,最後手段 |
# 啟動 Oracle 資源組
hareg -y Oracle
# 關閉 Oracle 資源組
hareg -n Oracle
由集群軟件 (HACMP/Veritas/RAC) 管理實例生命周期,不可直接用 SQL*Plus 啟停。
SVRMGRL 工具,CONNECT INTERNAL (已廢棄)。SQL*Plus 統一,CONNECT / AS SYSDBA。SELECT STATUS FROM V$INSTANCE (OPEN)、SELECT OPEN_MODE FROM V$DATABASE (READ WRITE)。V$TRANSACTION)、備份控制文件至追蹤 (ALTER DATABASE BACKUP CONTROLFILE TO TRACE)。熟練掌握 6 種啟動模式與 4 種關閉模式的適用邊界,是 DBA 從容應對維護窗口、故障恢復、升級遷移的基本功。平時多在測試環境演練 FORCE、RESTRICT、PFILE 等非常用模式。