首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle Instance 與 Database 根本區別:啟動、掛載、開啟三狀態圖解

     編輯:Oracle 資料庫相關知識

核心定義

概念本質組成生命週期
Database(資料庫)資料的**靜態儲存介質**資料檔、控制檔、重做日誌檔、參數檔、密碼檔檔案層面,可獨立存在、備份、複製、移動
Instance(實例)操作資料庫的**動態進程與記憶體**SGA、PGA、背景進程(PMON、SMON、DBWn、LGWR、CKPT...)進程層面,啟動→掛載→開啟→關閉,一個實例同時只能開啟一個資料庫

三大啟動階段

STARTUP NOMOUNT   -- 僅啟動 Instance(分配 SGA、啟動背景進程),未讀取控制檔
STARTUP MOUNT     -- Instance 掛載 Database(讀取控制檔,確認資料檔/重做日誌位置),資料庫仍關閉
STARTUP OPEN      -- 開啟資料庫(線上重做日誌開啟、資料檔上線),用戶可正常連線操作

關鍵限制:一個 Instance 僅能 Open 一個 Database

若需切換資料庫,必須 SHUTDOWN 實例 → 修改參數檔/環境變數 → STARTUP 新資料庫。嘗試在同一實例 ALTER DATABASE OPEN 另一資料庫會拋 ORA-16169(資料庫已開啟)。

RAC 例外:多 Instance 掛載同一 Database

  • Real Application Clusters:多節點各自啟動 Instance,共享同一組資料檔(共享儲存)。
  • 控制檔位圖記錄 enabled threads,每個 Instance 對應一個 Redo Thread。

實務場景對照

操作影響層級典型指令
建立資料庫檔案層CREATE DATABASE / DBCA
建立實例進程層ORADIM -NEW -SID ... (Windows) / init.ora + STARTUP NOMOUNT
備份資料庫檔案層RMAN/EXP/冷備份複製檔案
重啟實例進程層SHUTDOWN IMMEDIATE; STARTUP;
掛載不同資料庫需重啟實例SHUTDOWN; 修改 ORACLE_SID/參數檔; STARTUP MOUNT
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved