淺析理解Oracle數據庫體系結構和存儲結構
阿新 • • 發佈:2018-10-09
控制文件 打開 提高 相互 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數據庫體系結構和存儲結構