關系型數據庫管理系統Orcale9i體系結構的初步認識
對關系型數據庫管理系統Orcale9i體系結構的初步認識
首先我們在要了解Orcale9i之前必須要清楚以下幾點:
就Oracle9i本身而言主要可以區分為兩個部分:
1.cale Instance(Orcale實例).
2.cale9i Databases Files(Orcale數據庫文件).
Orcale Instance是指數據庫服務器的內存以及相關處理程序
Orcale Instance又包括SGA(系統全局區)以及Background Processes(后臺處理程序)
SGA又包括幾個重要的區域(在內存中劃分)
1.Database Buffer Cache(塊緩沖區高速緩存):用來存放讀取自數據文件的副本或者簡而理解為用戶曾經處理過的數據,這樣就能大大的提高數據存取的效率因為他有效的減少了數據在硬盤上的I\O操作.
2.Redo Log Buffer(重做日志緩沖區):記錄數據庫內所有的數據修改區簡而言之就是對數據庫的任何修改都會他記錄,這樣以便數據庫被損壞時可以進行必要的修復同時因為他是內存到內存的操作所以又加快
了數據庫的操作速度.
3.Shared Pool(共享池):為什么叫他共享池而不叫他共享區呢?我這樣認為:因為他其中還包括了兩個緩沖區:
?->Library Cache(SQL語句緩沖區):當用戶向Orcale提交一個SQL語句時,該緩沖區就將這條SQL語句進行分析,這個過程類似于編譯,這會消耗較多的時間,當Orcale完成對這條SQL語句分析過后,Orcale
?? 自動將其分析結果保存到Library Cache中,這樣當Orcale第二次執行該SQL時,Orcale將自動跳過這個分析過程,從而降低了系統運行的時間.
?->Data Dictionary(數據字典緩沖區):是Orcale特地為數據字典準備的一塊緩沖區,緊供Orcale內部使用儲存Orcale系統信息,我們用對他進行太多的細究.
注:Shared Pool是Orcale Instance最關鍵的內存片段.
4.其他的緩沖區.
Background Processes(后臺處理程序)其中主要的幾個進程:
1.DBWR(數據寫進程):將Database Buffer Cache內改動過的數據塊寫入到硬盤內的數據文件.
2.LGWR(日志寫進程):將重做日志緩沖區內的更改寫入到硬盤中的重做日志文件.
3.SMON(系統監控):在因為各種原因造成Orcale數據庫不正常的被關閉,下一次激活數據庫時SMON將盡行必要的修復.
4.PMON(進程監控):在一個Orcale進程失敗時PMON將對資源進行清理.
5.CKPT(檢查點進程):在每當Database Buffer Cache中的更改永久性的記錄在硬盤中時,更新控制文件和數據文件中的數據庫狀態信息.
6.ARCH(歸檔進程):在每次日志切換時把已滿的日志組進行備份或歸檔.
..................
Orcale9i Databases Files是指主要放在計算機硬盤上的各種Orcale9i數據庫文件其中包括:
1.數據文件
2.控制文件
3.日志文件
以上三個文件是由進程DBWR與LGWR對他們進行操作
4.歸檔日志文件
5.參數文件
6.口令文件,用戶的應用權限
Orcale 數據庫結構:
1.邏輯結構:
?構成的主要由以下幾個邏輯部件:
?->的儲存單位塊(data block).
?->區(extends).需要注意的是Oracle9i在配置儲存空間時是以區為單位的而不是最小的儲存單位塊!
?->段(segement),由許多區構成
?->表空間(Tablespace),Orcale9i數據庫最大的儲存空間,許多段構成.
?Orcale9i各邏輯部件存在一種階層關系:
?->數據存在每個數據塊內,數據讀寫以塊為單位
?->空間配置是以區為單位,一個區由一連串數據塊所構成
?->依實際數據量的多少,數據由多個區組成
?->數據表空間可以劃分為不同的區段,每個段又包括了許多區
?->在每個Orcale9i數據庫內可劃分不同的表空間,用以存放不同類型的數據
2.物理結構:
由各種Orcale9i數據庫文件構成.
注意:一個實例最多只能安裝和打開在一個數據庫上,而一個數據庫能對應多個實例,所以在建立數據庫之前,必須先指定Orcale實例的系統表示符(System Identifier),即Orcale SID 因為用來區分不同數據庫所以SID必須是唯一的.
實例主要負責數據庫的相應操作并與用戶交互.
?
?
?
?
?
?