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

Oracle 體系架構雙核心:資料庫 (靜態檔案) 與實例 (動態記憶體/進程) 完整對照

     編輯:Oracle 資料庫基礎

Oracle 體系架構建立在「資料庫」與「實例」兩大核心概念之上。本文系統對照兩者的本質差異、組成要素、生命週期、關鍵查詢視圖,並闡述 RAC 環境下一資料庫多實例的架構意義。

一、 核心定義對照表

二、 資料庫:三大強制檔案與邏輯/物理結構

1. 三大強制檔案

維度資料庫實例
本質**靜態**物理檔案集合**動態**記憶體結構 + 背景進程
組成資料檔 (.dbf)、控制檔 (.ctl)、Redo Log (.log)、參數檔、密碼檔、歸檔日誌SGA (共享記憶體) + PGA (程序記憶體) + PMON/SMON/DBWR/LGWR/CKPT... 背景進程
生命週期CREATE DATABASE 後永久存在,DROP DATABASE 才消失STARTUP 建立,SHUTDOWN 消失,可重複啟動/關閉
持久性斷電不遺失斷電即消失 (記憶體揮發)
關係一個資料庫可被多個實例掛載 (RAC)一個實例同一時間只掛載一個資料庫
識別方式DB_NAME, DB_UNIQUE_NAMEINSTANCE_NAME, ORACLE_SID

2. 邏輯儲存階層

資料庫
  └─ 表空間
       └─ Segment (表/索引/LOB/Undo/暫存)
            └─ Extent (連續區塊集合)
                 └─ Block (最小 I/O 單位)

3. 表空間類型與查詢

-- 表空間狀態
SELECT tablespace_name, status, contents, extent_management, allocation_type
FROM   dba_tablespaces;

-- 表空間與資料檔對應
SELECT tablespace_name, file_name, bytes/1024/1024 MB, autoextensible
FROM   dba_data_files;

三、 實例:記憶體結構與背景進程

1. SGA (System Global Area) - 共享記憶體

  • Shared Pool:Library Cache (SQL/PLSQL 計畫)、Dictionary Cache、Result Cache
  • Database Buffer Cache:Default/Keep/Recycle 三池 + 多區塊大小
  • Redo Log Buffer:LGWR 寫入前暫存
  • Large Pool / Java Pool / Streams Pool / Fixed SGA

2. PGA (Program Global Area) - 專用記憶體

  • 排序/雜湊/位圖合併工作區
  • 會話資訊、游標狀態、PL/SQL 集合
  • 自動管理:PGA_AGGREGATE_TARGET、PGA_AGGREGATE_LIMIT (12c+)

3. 五大核心背景進程

檔案功能備份/恢復關鍵
Data File儲存表、索引、LOB 等使用者資料RMAN 全備/增量備份核心對象
Control File資料庫元資料:檔案名、SCN、Checkpoint、RMAN 記錄、資料庫結構**必須多重鏡像** (3 份以上),遺失即需重建
Redo Log File循序記錄所有變更 (Redo Entry),支援崩潰恢復、Data Guard歸檔模式下必須備份 Archived Redo Log

四、 參數檔案與啟動階段

進程職責關鍵等待事件
PMON失敗進程清理:釋放鎖、回滾交易、清理 SGA/PGApmon timer
SMON執行個體恢復 (前滾/回滾)、合併暫存段smon timer
DBWR髒塊寫入資料檔 (LRU/LRUW 演算法)db file parallel write, free buffer waits
LGWRRedo Log Buffer 循序寫入線上 Redo Loglog file sync, log file parallel write
CKPT更新控制檔/資料檔 Checkpoint SCN,指引 DBWRcontrol file sequential read

五、 RAC 架構:一資料庫多實例

  • 共享:資料檔、控制檔、Redo Log (共享儲存/ASM)
  • 獨立:各節點擁有獨立 SGA、PGA、背景進程、ORACLE_SID
  • 協調:GCS (Global Cache Service) + GES (Global Enqueue Service) 維護緩存一致性與鎖協調
  • 優勢:高可用 (節點故障自動切換)、擴展性 (新增節點分攤負載)

六、 關鍵動態視圖速查

階段動作關鍵檔案/記憶體
NOMOUNT讀取參數檔 → 配置 SGA → 啟動背景進程PFILE/SPFILE
MOUNT掛載控制檔 → 讀取資料庫結構Control File
OPEN開啟資料檔/Redo Log → 線上可用Data File, Redo Log

七、 架構師總結

  1. 資料庫 = 持久化容器,設計重點:檔案分佈、備份策略、容量規劃
  2. 2. 實例 = 處理引擎,設計重點:記憶體分配、進程模型、Checkpoint/Redo 策略 3. 啟動 = 實例掛載資料庫,參數檔決定實例形態,控制檔連結資料庫結構 4. RAC = 多引擎共用一容器,靠 GCS/GES 協調一致性

搞清「資料庫 vs 實例」邊界,是 Oracle 架構設計、故障診斷、升級遷移、高可用部署的認知基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
視圖用途
V$DATABASE資料庫屬性:DB_NAME, DB_UNIQUE_NAME, LOG_MODE, OPEN_MODE
V$INSTANCE實例屬性:INSTANCE_NAME, HOST_NAME, VERSION, STARTUP_TIME, STATUS
V$DATAFILE / V$CONTROLFILE / V$LOGFILE物理檔案路徑、狀態、大小
V$SGA / V$SGASTAT / V$PGASTAT記憶體配置與使用統計
V$BGPROCESS背景進程狀態