1. 程式人生 > >淺析理解Oracle數據庫體系結構和存儲結構

淺析理解Oracle數據庫體系結構和存儲結構

控制文件 打開 提高 相互 col 刪除 undo 建議 行數

一、Oracle體系結構

技術分享圖片

個人比喻幫助理解:類似於圖書館,去圖書館的客戶(用戶進程和服務進程等)需要調取資料,求助於圖書管理員(實例)進入圖書分區(數據庫)進行資料查找。【如果比喻不當,歡迎指正,盡請諒解】

-


第一部分是實例部分(為用戶提供服務,管理數據庫):

技術分享圖片

主要理解分成兩個主要部分:

(1)內存結構:
技術分享圖片
(2)後臺進程:與數據庫進行交互

-

第二部分是數據庫部分物理結構:(為實例提供服務,處理數據文件)

  • 主要文件:數據文件,控制文件,重做日誌文件
  • 其他文件:歸檔日誌文件,參數文件,口令文件等

二、Oracle數據庫的存儲結構

Oracle數據庫的存儲結構分為物理結構和邏輯結構,這兩種存儲結構既相互獨立,又相互聯系。

-

技術分享圖片

物理結構包括有:

主要文件:數據文件,重做日誌文件,控制文件

其他文件:參數文件,歸檔日誌文件

-

主要文件:

  • 數據文件:包含數據庫的用戶或應用程序數據以及元數據和數據字典

  • 重做日誌文件:用於進行數據庫的實例恢復。如果數據庫服務器發生崩潰,但未丟失任何數據文件,那麽實例便可使用這些文件中的信息恢復數據庫。

  • 控制文件:包含與數據庫本身相關的數據,即物理數據庫結構信息。這些文件對數據庫至關重要。沒有這些文件,就無法打開數據文件以訪問數據庫中的數據。

-

其他文件:

  • 參數文件:用於定義實例啟動時的配置
    參數文件( Parameter File)也被稱為初始化參數文件,用於存儲SGA、可選的 Oracle特性和後臺進程的配置參數。當數據庫啟動,並在創建例程或讀取控制文件之前,會先按其中的參數進行例程的配置。
    1)遺留的參數文件 init.ora:可以轉換成 SPFILE,需要手工修改
    文件名約定默認為
    $SORACLE_ HOME/dbs/init$ORACLE_SID.ora
    2)服務器參數文件目前使用,通過命令修改
    文件名約定默認為:
    $SORACLE_HOME/dbs/spfile#$ORACLE_SID.ora

註意:建議不要修改服務器參數文件存儲的默認位置,否則必須要告訴 Oracle到哪裏去找這個文件。

  • 口令文件:允許 sysdba、 sysoper和 Issas遠程連接到實例並執行管理任務
  • 歸檔日誌文件:使用這些文件和數據庫備份可以恢復丟失的數據文件。也就是說,歸檔日誌能夠恢復還原的數據文件

邏輯結構包括有:表空間,數據塊,區,段等

技術分享圖片

從大到小的順序依次為:數據庫—>表空間—>段—>區—>Oracle數據塊

  • :構成表空間的邏輯存儲結構,段由一組區組成。按照段所存儲數據的特征,將段分為四種類型,即數據段,索引段,回退段和臨時段
  • :區為段分配空間,它由連續的數據塊組成。當段中的所有空間已完全使用時,系統自動為該段分配一個新區。區不能跨數據文件存在,只能存在於一個數據段中。
  • :數據塊是Oracle服務器所能分配,讀取或者寫入的最小存儲單元。Oracle 服務器以數據塊為單位管理數據文件的存儲空間。
  • 模式:模式是數據庫用戶擁有的數據庫對象的集合。模式對象包括表,視圖,索引,同義詞,序列,過程和程序包等。

表空間

  • 是數據庫中最大的邏輯單位, SYSTEM和SYSAUX表空間是在創建數據庫時創建的必須存在的表空間,還會有TEMP, USERS等
  • 每個表空間是由一個或多個數據文件組成的,一個數據文件只能與一個表空間相關聯
  • 表空間的大小等於構成該表空間的所有數據文件大小之和
    技術分享圖片

安裝完 Oracle後自動創建的表空間主要包括:

  • SYSTEM系統表空間,存放關於表空間名稱、控制文件、數據文件等管理信息,它屬於sys、 system模式。不能刪除或重命名。
  • SYSAUX輔助系統表空間,用於減少系統表空間的負荷,提高效率
  • TEMP臨時表空間,存放臨時表和臨時數據,用於排序
  • USERS用戶表空間,存放永久性用戶對象及私有信息,也稱數據表空間。註意:每一個數據庫都應該有一個用戶表空間,以便在創建用戶時分配給用戶,否則用戶的數據將會使用SYSTEM表空間。
  • UNDO重做表空間,用來幫助回退未提交的事物數據

-

舉例:

技術分享圖片
上面的圖有:

  • 一個表空間
  • 兩個數據文件:/do1/user_data01.dbf 和 /do1/user_data02.dbf
  • 段有三個:兩個數據段【×××和T2】,一個索引段【I1】
  • 四個區
  • 16個塊
    PS:段是可以跨數據文件的。區是不可以跨數據文件的。

淺析理解Oracle數據庫體系結構和存儲結構