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

Oracle 架構核心:資料庫與實例、表空間、儲存結構全景圖

     編輯:Oracle 資料庫基礎

一、 Oracle 資料庫 vs 實例:兩大核心組件

完整的 Oracle 系統由兩部分組成:

組件內容
資料庫物理檔案集合:資料檔、控制檔、線上重做日誌、參數檔等
實例記憶體結構(SGA)+ 背景程序(PMON、SMON、DBWn、LGWR、CKPT…)

啟動資料庫 = 在記憶體建立實例(分配 SGA、啟動背景程序) → 實例掛載並開啟資料庫檔案。SGA 是核心記憶體區,包含資料庫緩衝區快取、共享池等,佔 SGA 95% 以上,透過減少 I/O 提升效能。

二、 邏輯與物理儲存結構

1. 邏輯層級:資料庫 → 表空間 → 區段 → 區塊 → 區塊

  • 資料庫:邏輯資料集合,包含關聯式表、視圖、索引等,亦支援物件導向結構。
  • 表空間:資料庫的邏輯劃分,每個資料庫至少有 SYSTEM 表空間。常見規劃:
    USER(一般用戶)、RBS/UNDO(回滾/撤銷)、IDX(索引)、TEMP(暫存)等。
  • 資料檔:表空間的物理載體,一個表空間可含多個資料檔,但一個資料檔只屬於一個表空間。Oracle 7.2+ 支援自動擴展。

將不同表空間的資料檔分置於不同磁碟,是優化 I/O 分佈的關鍵手段。

2. 物理層級:作業系統層面的檔案與區塊

邏輯結構描述 Oracle 內部組織;物理結構描述 OS 層面組織。兩者映射關係是 DBA 調校的基礎。

三、 實例啟動與參數檔

  • init.ora / spfile:實例啟動參數,決定 SGA 大小、程序數量、資料庫名稱等。修改需重啟生效(動態參數除外)。慣例命名:init.ora。
  • config.ora:靜態參數(如 db_block_size),建立後不可變。慣例命名:config.ora,並在 init.ora 中以 IFILE 參數引入。

四、 關鍵背景程序速覽

  • DBWn:將髒緩衝區寫入資料檔
  • LGWR:將重做日誌緩衝寫入線上重做日誌檔
  • CKPT:定期更新控制檔與資料檔標頭的檢查點資訊
  • SMON:執行執行個體恢復、合併自由空間
  • PMON:清理失敗程序佔用的資源
  • ARCH:歸檔模式下將線上重做日誌複製至歸檔目的地

五、 實例與資料庫的多對多關係

  • 單實例單資料庫:最常見架構
  • RAC (Real Application Clusters):多實例存取單一資料庫(共享儲存),提供高可用與擴展性
  • Data Guard:單實例備援至另一實例(實體備份資料庫)

結語

掌握「實例 = 記憶體 + 程序」、「資料庫 = 物理檔案」、「表空間 = 邏輯容器」這三大核心概念,是進階 Oracle 管理、效能調校與架構設計的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved