STARTUP [FORCE] [PFILE=filename] [EXCLUSIVE|SHARED] [MOUNT|NOMOUNT|OPEN [db_name]] [RESTRICT]
| 模式 | 指令 | 狀態 | 適用場景 |
|---|---|---|---|
| 正常啟動 | STARTUP | NOMOUNT → MOUNT → OPEN | 日常運維、應用上線 | 指定 DB 名 | STARTUP orcl | 同上 | 多實例環境指定啟動 |
| NOMOUNT | STARTUP NOMOUNT | 僅啟動 SGA/背景程序,未讀取控制檔 | 建立資料庫、恢復控制檔、RMAN 還原控制檔 |
| MOUNT | STARTUP MOUNT | 讀取控制檔,關聯資料檔/Redo,未開啟 | 備份(冷備)、啟用歸檔、恢復資料檔、修改參數 |
| RESTRICT | STARTUP RESTRICT | MOUNT → OPEN,但僅允許 RESTRICTED SESSION 權限使用者連線 | 維護窗口、資料遷移、Schema 變更、效能測試 |
| FORCE | STARTUP FORCE | SHUTDOWN ABORT → STARTUP | 上次異常關閉、鎖死無法正常關閉 |
| PFILE 指定 | STARTUP PFILE=/path/init.ora | 依指定參數檔啟動 | 參數調優測試、多環境部署 |
-- MOUNT -> OPEN
ALTER DATABASE OPEN;
-- OPEN -> RESTRICTED
ALTER SYSTEM ENABLE RESTRICTED SESSION;
-- RESTRICTED -> 正常
ALTER SYSTEM DISABLE RESTRICTED SESSION;
-- 1. 準備 init.ora,設定 DB_NAME, CONTROL_FILES, MEMORY_TARGET 等
-- 2. 啟動 NOMOUNT
STARTUP NOMOUNT PFILE=/u01/app/oracle/admin/newdb/pfile/init.ora;
-- 3. 執行 CREATE DATABASE 腳本
@/u01/app/oracle/admin/newdb/scripts/create_db.sql
-- 4. 執行目錄腳本
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
...
-- 5. 開啟資料庫
ALTER DATABASE OPEN;
ORA-01081:已啟動實例嘗試再次 STARTUP → 先 SHUTDOWN 或用 FORCE。ORA-01102:多實例嘗試 MOUNT 同一資料庫 → 檢查 CLUSTER_DATABASE、DB_UNIQUE_NAME。SPFILE 存在或指定 PFILE。精通五大啟動模式與切換指令,是 DBA 從容應對建庫、恢復、維護、故障搶修的基本功。建議將常用組合封裝為 Shell 函數,減少手誤。