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

Oracle 資料庫架構核心基礎入門指南

     編輯:Oracle 資料庫基礎

認識 Oracle 架構的重要性

學習 Oracle 資料庫,首要任務是掌握其整體架構框架。唯有建立完整的宏觀認知,才能在後續的深入學習與實務操作中做到「高屋建瓴」,游刃有餘。

一、物理結構:儲存的基石

Oracle 資料庫的物理結構由控制檔、資料檔、重做日誌檔、參數檔、歸檔檔、密碼檔等關鍵檔案組成。資料實際存放於磁碟的物理檔案中,使用時會被載入記憶體。

核心檔案分類

  • 資料庫檔案:控制檔、資料檔、重做日誌檔、追蹤檔與警示日誌。
  • 非資料庫檔案:參數檔、密碼檔。

1.1 資料檔

資料檔是儲存實際資料的容器,其數量與大小決定了資料庫的容量上限。為提升效能,不同類型的資料(資料字典、使用者資料、索引、暫存資料等)通常分散存放於不同磁碟的多個檔案中。

1.2 控制檔

控制檔記錄維護資料庫完整性所需的關鍵資訊:資料庫名稱、表空間資訊、所有資料檔與重做日誌檔的名稱及位置、當前日誌序列號、檢查點資訊、重做日誌與歸檔狀態等。啟動執行個體時,Oracle 從參數檔讀取控制檔路徑,掛載資料庫時依控制檔開啟所有資料檔。每個資料庫至少需一個控制檔,生產環境強建議多路徑多工。

1.3 重做日誌檔

記錄對資料庫的所有變更,是故障恢復的核心依據。資料庫至少需要兩組重做日誌檔,以確保循環寫入不中斷。

1.4 追蹤檔與警示日誌

每個背景進程皆有專屬追蹤檔,記錄重大事件;警示日誌是特殊的追蹤檔,集中記錄資料庫啟動、關閉、錯誤、切換日誌等關鍵訊息,是排錯首選參考。

1.5 參數檔

定義執行個體特性:控制檔位置、SGA 記憶體結構大小、優化器模式等。啟動時指引 Oracle 找到控制檔,並指定歸檔日誌目的地。

1.6 歸檔檔

已填滿的重做日誌檔離線副本,對介質故障恢復至關重要。啟用 ARCHIVELOG 模式後自動產生。

1.7 密碼檔

鑑別擁有 SYSDBA/SYSOPER 權限的用戶,允許遠端啟動/關閉資料庫。

二、邏輯結構:管理的單元

  • 表空間:邏輯儲存的最高層,由一組資料檔組成。
  • 段:物件(表、索引等)佔用的空間集合。
  • 區:連續區塊的集合,空間分配的基本單位。
  • 區塊:Oracle 最細粒度的儲存單位,建庫時指定大小(預設 8KB)。

三、記憶體架構:SGA 與 PGA

  • SGA (System Global Area):所有伺服器/背景進程共享的記憶體區,包含資料庫緩衝區快取、共用池、重做日誌緩衝區、大池等。實體記憶體不足時會使用虛擬記憶體。
  • PGA (Program Global Area):單一進程專用的私有記憶體,包含排序區、游標狀態等。進程建立時分配,終止時釋放。

四、背景進程:幕後功臣

進程縮寫核心職責
資料庫寫入進程DBWn將髒緩衝區寫入資料檔
日誌寫入進程LGWR將重做日誌緩衝區寫入線上重做日誌檔
系統監控進程SMON執行執行個體恢復、整理暫存段、合併相鄰自由區
進程監控進程PMON清理失敗進程遺留資源(鎖、SGA 空間等)
檢查點進程CKPT檢查點發生時更新控制檔與資料檔標頭,減輕 LGWR 負擔
歸檔進程ARCn將填滿的線上重做日誌檔複製至歸檔目的地
伺服器進程-代表用戶進程執行 SQL、傳回結果
用戶進程-客戶端工具發起連線、發送 SQL、接收結果

五、SCN:一致性的時鐘

System Change Number(系統變更號)是內部維護的遞增序號,每次提交遞增。它是實現讀一致性、恢復排序、分散式資料庫同步的核心標識。

掌握上述架構,即打開了 Oracle 內部運作的大門,為後續的效能調校、備份恢復、故障診斷奠定堅實基礎。

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