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