版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章 Oracle數(shù)據(jù)庫的體系結(jié)構(gòu)2.1 Oracle數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)Oracle數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)由存儲(chǔ)在磁盤中的操作系統(tǒng)文件組成。包括構(gòu)成數(shù)據(jù)庫的各種物理文件,包括數(shù)據(jù)文件,控制文件,重演日志文件,歸檔重演日志文件,參數(shù)文件,警告、跟蹤日志文件和備份文件等。Oracle數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu) 物理存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)文件(Data File)重做日志文件(Redo Log File)控制文件(Control File) 邏輯存儲(chǔ)結(jié)構(gòu)表空間(Table Space)段(Segment)區(qū)(Extent)塊(Block)Oracle數(shù)據(jù)庫文件類型及其關(guān)聯(lián)2.1.1 數(shù)據(jù)文件(Data File) 數(shù)據(jù)
2、庫中所有的數(shù)據(jù)最終都保存在數(shù)據(jù)文件中。每個(gè)Oracle數(shù)據(jù)庫都有一個(gè)或多個(gè)物理數(shù)據(jù)文件數(shù)據(jù)文件中包括表數(shù)據(jù)索引數(shù)據(jù)數(shù)據(jù)字典定義回滾事務(wù)所需的信息存儲(chǔ)過程、函數(shù)和數(shù)據(jù)包的代碼用來排序的臨時(shí)數(shù)據(jù)一個(gè)數(shù)據(jù)文件只能與一個(gè)數(shù)據(jù)庫相關(guān)聯(lián)(N:1)??梢詫?duì)數(shù)據(jù)文件設(shè)置一些特性,在數(shù)據(jù)庫空間用完的情況下可以自動(dòng)擴(kuò)展。一個(gè)或多個(gè)數(shù)據(jù)文件構(gòu)成了一個(gè)數(shù)據(jù)庫存儲(chǔ)的邏輯單元表空間(table space)。 提示:表空間是數(shù)據(jù)庫存儲(chǔ)的邏輯單位。數(shù)據(jù)庫文件如果離開了表空間將失去意義,而表空間如果離開了數(shù)據(jù)文件將失去物理基礎(chǔ)數(shù)據(jù)文件的特點(diǎn)例:使用數(shù)據(jù)字典dba_data_files查看表空間system所對(duì)應(yīng)的數(shù)據(jù)文件的部
3、分信息。SQLdesc dba_data_files;SQLselect file_name,tablespace_name, autoextensible from dba_data_files where tablespace_name=SYSTEM;dba_data_files表結(jié)構(gòu):查詢執(zhí)行結(jié)果:2.1.2 控制文件數(shù)據(jù)庫控制文件(control file)是一個(gè)很小的二進(jìn)制文件,用于維護(hù)數(shù)據(jù)庫的全局物理結(jié)構(gòu),它存放著數(shù)據(jù)庫中數(shù)據(jù)文件和日志文件的信息。創(chuàng)建數(shù)據(jù)庫時(shí),同時(shí)就提供了與之對(duì)應(yīng)的控制文件。每一個(gè)控制文件只能與一個(gè)Oracle數(shù)據(jù)庫相關(guān)聯(lián)??刂莆募藬?shù)據(jù)庫實(shí)例在啟動(dòng)和正常操作
4、時(shí),訪問數(shù)據(jù)庫所需的關(guān)于數(shù)據(jù)庫的信息。 一旦損壞,數(shù)據(jù)庫將無法正常工作查詢當(dāng)前數(shù)據(jù)庫的控制文件信息 ( 使用數(shù)據(jù)字典:V$controlfile ) 提示:Oracle一般會(huì)默認(rèn)創(chuàng)建3個(gè)包含相同信息的控制文件,分別存儲(chǔ)在不同磁盤互為鏡像,以防其中之一受損時(shí),數(shù)據(jù)庫可以調(diào)用其他控制文件繼續(xù)工作SQLcolumn name format a50;SQLselect name from V$controlfile;控制文件包含的信息數(shù)據(jù)庫名稱數(shù)據(jù)庫創(chuàng)建的時(shí)間戳相關(guān)的數(shù)據(jù)文件、重演日志文件的名稱和位置表空間信息數(shù)據(jù)文件脫機(jī)范圍日志歷史歸檔日志信息備份組和備份塊信息備份數(shù)據(jù)文件和重演日志信息數(shù)據(jù)文件拷貝
5、信息當(dāng)前日志序列數(shù)檢查點(diǎn)(checkpoint)信息2.1.3 重做日志文件每一個(gè)Oracle數(shù)據(jù)庫都有一個(gè)由兩個(gè)或多個(gè)重演日志文件(redo log file)構(gòu)成的文件組,這組重演日志文件合稱為數(shù)據(jù)庫的重演日志。一個(gè)重演日志文件是由重做條目(redo entry,也叫重做記錄)組成的。重演日志的主要功能是記錄下所有數(shù)據(jù)的改變。重演日志文件中的信息可以用在數(shù)據(jù)庫從系統(tǒng)失敗或者介質(zhì)失敗的恢復(fù)之中 。 記錄數(shù)據(jù)庫所有修改信息的文件,簡(jiǎn)稱日志文件,是數(shù)據(jù)庫最重要的文件之一。其中修改信息包括數(shù)據(jù)的修改信息或者數(shù)據(jù)庫結(jié)構(gòu)的修改信息等。為了確保日志文件的安全,在實(shí)際應(yīng)用中,允許對(duì)日志文件進(jìn)行鏡像,它們構(gòu)
6、成一個(gè)日志文件組,同一個(gè)族的日志文件最好放在不同的磁盤中。Oracle中的多個(gè)日志文件組是循環(huán)使用的。當(dāng)所有的日志文件組的空間都被填滿后,系統(tǒng)將重新切換到第一個(gè)日志文件組,發(fā)生日志切換時(shí),日志文件組中已有的信息是否被覆蓋取決于系統(tǒng)運(yùn)行的模式(歸檔模式和非歸檔模式。)日志文件組2.1.4 其他文件 1.歸檔重演日志文件 歸檔重演日志文件(archive log file)就是對(duì)寫滿的重演日志文件進(jìn)行復(fù)制并保存而生成的文件。 可以通過設(shè)置數(shù)據(jù)庫為歸檔模式(ARCHIVELOG mode)下來自動(dòng)地保存日志文件。歸檔進(jìn)程(ARCO)在后臺(tái)負(fù)責(zé)把寫滿的重演日志文件復(fù)制到歸檔日志目標(biāo)中。歸檔日志文件在數(shù)
7、據(jù)庫恢復(fù)時(shí)起決定性作用。2. 參數(shù)文件(parameter file) 參數(shù)文件包含了一組關(guān)于數(shù)據(jù)庫和實(shí)例的配置參數(shù)。主要包括數(shù)據(jù)庫名和控制文件所在路徑。有文本參數(shù)文件(parameterFile,簡(jiǎn)稱Pfile。ini.ora)和服務(wù)器參數(shù)文件(Server Parameter File ,簡(jiǎn)稱Spfile,spfile.ora)兩種類型。 Oracle推薦用戶使用一個(gè)服務(wù)器參數(shù)文件作為維護(hù)初始化參數(shù)的動(dòng)態(tài)手段。一個(gè)服務(wù)器參數(shù)文件允許用戶在一個(gè)服務(wù)器端的磁盤文件里持久地保存和管理初始化參數(shù)。3. 警告、跟蹤日志文件 每一個(gè)服務(wù)器和后臺(tái)進(jìn)程都可以寫入一個(gè)相關(guān)的跟蹤文件(trace file)。
8、當(dāng)一個(gè)進(jìn)程發(fā)現(xiàn)了一個(gè)內(nèi)部錯(cuò)誤的時(shí)候,它把關(guān)于錯(cuò)誤的信息轉(zhuǎn)儲(chǔ)到它的跟蹤文件里。寫入到跟蹤文件的一部分信息是給數(shù)據(jù)庫管理員使用的,而其他信息是給Oracle支持服務(wù)的。跟蹤文件信息還可以用于調(diào)整應(yīng)用程序和實(shí)例。 警告文件(alert file)是一種特殊的跟蹤文件,一個(gè)數(shù)據(jù)庫的警告文件就是包括按時(shí)間排序的消息和錯(cuò)誤的記錄。 4. 備份文件 用戶管理的備份和恢復(fù)實(shí)際上就是要求用戶在試圖恢復(fù)備份的時(shí)候先還原備份文件。服務(wù)器管理的備份和恢復(fù)管理了備份過程,例如,調(diào)度備份及恢復(fù)過程就是在需要恢復(fù)的時(shí)候施加正確的備份文件。 主要的邏輯存儲(chǔ)結(jié)構(gòu):表空間各種段數(shù)據(jù)段索引段臨時(shí)段回滾段區(qū)間數(shù)據(jù)塊 2.2 Orac
9、le數(shù)據(jù)庫的邏輯存儲(chǔ)結(jié)構(gòu)表空間段數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)庫表空間段區(qū)區(qū)Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu)表空間是Oracle中最大的邏輯存儲(chǔ)結(jié)構(gòu),它與物理上的一個(gè)或多個(gè)數(shù)據(jù)文件相對(duì)應(yīng),每個(gè)Oracle數(shù)據(jù)庫都至少擁有一個(gè)表空間。表空間的大小等于構(gòu)成表空間的所有數(shù)據(jù)文件大小的總和。表空間用于存儲(chǔ)用戶在數(shù)據(jù)庫中創(chuàng)建的所有的內(nèi)容。2.2.1 表空間(Tablespace)表空間與數(shù)據(jù)文件的關(guān)系 一個(gè)表空間與硬盤上的一個(gè)或多個(gè)物理數(shù)據(jù)文件相對(duì)應(yīng)。例:通過數(shù)據(jù)字典dba_tablespaces,查看當(dāng)前數(shù)據(jù)庫的所有表空間的名稱SQLselect tablespace_name from dba_tablespaces
10、;Oracle自動(dòng)創(chuàng)建的表空間的說明:見P23頁中表2-1系統(tǒng)表空間臨時(shí)表空間工具表空間用戶表空間數(shù)據(jù)庫索引表空間回滾表空間主要的數(shù)據(jù)庫表空間Oracle允許在逐個(gè)表空間基礎(chǔ)上控制數(shù)據(jù)庫數(shù)據(jù)的可用性在聯(lián)機(jī)表空間中的數(shù)據(jù)對(duì)于應(yīng)用程序和數(shù)據(jù)庫來說是可用的在脫機(jī)表空間中的數(shù)據(jù)對(duì)于應(yīng)用程序和數(shù)據(jù)庫來說是不可用的,即使當(dāng)數(shù)據(jù)庫是可用的也是如此。 聯(lián)機(jī)和脫機(jī)表空間永久表空間和臨時(shí)表空間在Oracle數(shù)據(jù)庫中,大多數(shù)表空間是永久表空間。永久表空間存儲(chǔ)單個(gè)SQL請(qǐng)求和事務(wù)中必須存留的信息。Oracle還允許在數(shù)據(jù)庫中創(chuàng)建臨時(shí)表空間。臨時(shí)表空間使事務(wù)能夠用于處理復(fù)雜SQL操作的大量臨時(shí)工作空間,如存儲(chǔ)查詢、連接
11、查詢和建立索引等。段是一組盤區(qū),是Oracle管理數(shù)據(jù)庫對(duì)象的單位。是終端用戶能處理的最小單位。Oracle為段分配的空間是以數(shù)據(jù)區(qū)為單位的,當(dāng)斷的數(shù)據(jù)區(qū)已滿,Oracle圍棋分配另一個(gè)數(shù)據(jù)區(qū)。段的數(shù)據(jù)區(qū)可以是不連續(xù)的磁盤空間。段可以分為:數(shù)據(jù)段、索引段、臨時(shí)段、回退段四種類型。2.2.2 段(Segment)1.數(shù)據(jù)段 用于存儲(chǔ)表中的數(shù)據(jù)。數(shù)據(jù)段的名稱與表的名稱相同。系統(tǒng)為分區(qū)表的每個(gè)分區(qū)分配一個(gè)數(shù)據(jù)段。2.索引段 用于存儲(chǔ)表中國(guó)的所有索引信息。索引段的名稱與索引相同。分區(qū)索引的每一個(gè)分區(qū)對(duì)應(yīng)一個(gè)索引段。3.臨時(shí)表 臨時(shí)段用于存儲(chǔ)臨時(shí)數(shù)據(jù)。排序或者匯總時(shí)所產(chǎn)生的臨時(shí)數(shù)據(jù)都存儲(chǔ)在臨時(shí)段中,該段
12、由系統(tǒng)在用戶的臨時(shí)表空間中自動(dòng)創(chuàng)建,兵在排序或者匯總結(jié)束是自動(dòng)消除。4.回退段 用于存儲(chǔ)用戶數(shù)據(jù)被修改之前的值。用于用戶進(jìn)行回退(恢復(fù))操作時(shí)使用。每個(gè)Oracle數(shù)據(jù)庫至少擁有一個(gè)回退段。2.2.3 區(qū)(EXtent)區(qū)時(shí)磁盤空間分配的最小單位,由一個(gè)或多個(gè)數(shù)據(jù)塊組成。當(dāng)段中的所有空間被使用完后,系統(tǒng)將自動(dòng)為該段分配一個(gè)新的區(qū)。段所包含的區(qū)的個(gè)數(shù)由:minextents和maxextents參數(shù)決定。2.2.4 數(shù)據(jù)塊是用來管理存儲(chǔ)空間的最基本的單位,也是最小的邏輯存儲(chǔ)單位。塊頭部:包含數(shù)據(jù)塊中的餓一般屬性信息,如物理地址、所屬斷的類型等。表目錄:用來存儲(chǔ)相關(guān)對(duì)象的信息。行目錄:用來存儲(chǔ)數(shù)據(jù)
13、塊中有效的行信息??臻e空間:數(shù)據(jù)塊中還沒有使用的存儲(chǔ)空間。行空間: 數(shù)據(jù)塊中已使用的存儲(chǔ)空間塊頭部表目錄行目錄空閑空間行空間塊頭部信息區(qū) 塊的默認(rèn)大小,由 db_block_size參數(shù)在數(shù)據(jù)庫創(chuàng)建時(shí)指定,一旦數(shù)據(jù)庫創(chuàng)建成功后無法修改。2.2.5表空間、段、分區(qū)和數(shù)據(jù)塊的關(guān)系圖2.3 Oracle數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)與實(shí)例Oracle數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)包括:Oracle實(shí)例(Instance)、數(shù)據(jù)庫文件、用戶進(jìn)程、服務(wù)器進(jìn)程,以及其他文件如:密碼文件、和歸檔文件(Archive Log File)等。Oracle數(shù)據(jù)庫管理系統(tǒng)包括: Oracle數(shù)據(jù)庫 和 Oracle實(shí)例 Oracle數(shù)據(jù)庫是一組相
14、關(guān)的操作系統(tǒng)文件的集合2.3.1 Oracle數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Library cacheData dict cacheOracle數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)Oracle 系統(tǒng)結(jié)構(gòu)圖2.3.2 Oracle數(shù)據(jù)庫實(shí)例 Oracle實(shí)例由一些內(nèi)存區(qū)和后臺(tái)進(jìn)程組成。內(nèi)存區(qū)域主要包括:數(shù)據(jù)庫高速緩存、共享池、流池以及其他可選內(nèi)存區(qū)(如java池)。后臺(tái)進(jìn)程主要由:系統(tǒng)監(jiān)控進(jìn)程(SMON)、進(jìn)程監(jiān)控(PMON)、數(shù)據(jù)庫寫進(jìn)程(DBWR)、日志寫進(jìn)程(LGWR)、檢驗(yàn)點(diǎn)進(jìn)程(CKPT)、其他進(jìn)程(如ARCn進(jìn)程、RECO進(jìn)程)1. 實(shí)例和數(shù)據(jù)庫之間的關(guān)系2. Oracle實(shí)例與參數(shù)文件每個(gè)實(shí)例都要用稱為SID (sys
15、tem identifier,系統(tǒng)標(biāo)識(shí)符)的符號(hào)來標(biāo)識(shí) 決定實(shí)例的大小及組成的參數(shù)存儲(chǔ)在初始化參數(shù)文件(init.ora)中,啟動(dòng)實(shí)例時(shí)讀取這個(gè)文件,在運(yùn)行時(shí)可由數(shù)據(jù)庫管理員修改 對(duì)該文件的任何修改都只有在數(shù)據(jù)庫下一次啟動(dòng)時(shí)才起作用 2.3.3 Oracle數(shù)據(jù)庫系統(tǒng)的內(nèi)存結(jié)構(gòu)1.系統(tǒng)全局區(qū)(SGA)主要部分組成數(shù)據(jù)庫高速緩存區(qū)共享池重做日志緩存區(qū)大緩存池固定的SGA。緩沖區(qū)域共享區(qū)域系統(tǒng)全局區(qū)(SGA)軟件代碼區(qū)域??臻g會(huì)話信息其他區(qū)程序全局區(qū)(PGA)Oracle內(nèi)存結(jié)構(gòu)圖數(shù)據(jù)庫高速緩存區(qū)(Database Buffer Cache)圖 2.8 數(shù)據(jù)庫高速緩存區(qū) 用于存儲(chǔ)從磁盤數(shù)據(jù)文件中讀
16、取的數(shù)據(jù),供所有用戶共享,以提高數(shù)據(jù)庫的整體效率共享池 Share pool圖 2.9 共享池中的內(nèi)存結(jié)構(gòu) 用于保存最近執(zhí)行的SQL語句、PL/SQL程序的數(shù)據(jù)字典信息,以用于系統(tǒng)對(duì)其進(jìn)行語法分析、編譯和執(zhí)行的內(nèi)存區(qū)域。重做日志緩存區(qū)用于在內(nèi)存中存儲(chǔ)未被刷新寫入聯(lián)機(jī)重做日志文件的重做信息是Oracle在循環(huán)方式下使用的先進(jìn)先出的緩沖區(qū)大小可在初始化參數(shù)文件中由log buffer參數(shù)設(shè)定,以字節(jié)為單位大緩存池是Oracle的一個(gè)可選內(nèi)存區(qū),主要用于多線程的服務(wù)器或備份還原等操作固定的SGA用于存儲(chǔ)極大量的值。為了對(duì)實(shí)例進(jìn)行操作,這些值需要在內(nèi)部進(jìn)行記錄。程序全局區(qū)(PGA)獨(dú)立于SGA,不會(huì)出
17、現(xiàn)在SGA中。由操作系統(tǒng)在本地分配。在系統(tǒng)全局區(qū)可用的共享內(nèi)存連接到Oracle數(shù)據(jù)庫的進(jìn)程的私有的內(nèi)存區(qū)程序全局區(qū)(PGA)程序全局區(qū)不能共享程序全局區(qū)含有單個(gè)進(jìn)程工作時(shí)需要的數(shù)據(jù)、控制信息、進(jìn)程會(huì)話變量和內(nèi)部數(shù)組等2.3.4 Oracle數(shù)據(jù)庫系統(tǒng)的后臺(tái)進(jìn)程圖 2.10 典型的Oracle后臺(tái)進(jìn)程集合 在NT服務(wù)器上,后臺(tái)進(jìn)程的執(zhí)行是作為Oracle Service的多線程實(shí)現(xiàn)的,它允許Oracle進(jìn)程更有效地使用共享內(nèi)存地址空間,從而減少了N T 操作系統(tǒng)處理。 Oracle數(shù)據(jù)庫啟動(dòng)時(shí),會(huì)啟動(dòng)多個(gè)Oracle后臺(tái)進(jìn)程,用于異步執(zhí)行不同的特定任務(wù)。通過查詢數(shù)據(jù)字典v$bgprocess可
18、以查看它們的相關(guān)信息。DBWn 進(jìn)程: 數(shù)據(jù)庫寫入進(jìn)程,負(fù)責(zé)將數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)寫入數(shù)據(jù)文件。其主要有以下幾個(gè)作用:管理數(shù)據(jù)緩沖區(qū),一遍用戶進(jìn)程總能找到空閑的緩沖區(qū)。將所有修改后的緩沖區(qū)數(shù)據(jù)(dirty data)寫入數(shù)據(jù)文件。使用LRU算法將最近使用過的塊保留在內(nèi)存中。通過延遲些來優(yōu)化磁盤I/O讀寫。DBWn進(jìn)程最多可以啟動(dòng)20個(gè),分別命名為DBW0,DBW1.DBW9,DBWa,DBWj。由參數(shù)db_writer_processes決定。LGWR 進(jìn)程 日志寫入進(jìn)程,負(fù)責(zé)管理日志緩沖區(qū)的后臺(tái)進(jìn)程。 將日志信息同步的寫入在線日志文件組中。若整個(gè)日志文件組均無法使用,則進(jìn)程會(huì)被掛起,直至問題被
19、解決。CKPT 進(jìn)程檢驗(yàn)點(diǎn)進(jìn)程。一般在發(fā)生日志切換時(shí)自動(dòng)產(chǎn)生,用于縮短實(shí)例恢復(fù)所需要的時(shí)間。在檢查點(diǎn)期間,該進(jìn)程更新控制文件與數(shù)據(jù)文件的標(biāo)題,從而反映最近成功SCN(系統(tǒng)更改號(hào))。參數(shù) Log_checkpoint_timeout:設(shè)置檢查點(diǎn)產(chǎn)生的時(shí)間間隔,默認(rèn)1800秒。參數(shù) Log_checkpoint_interval:設(shè)置一個(gè)檢查點(diǎn)需要填充的日志文件塊的數(shù)目。默認(rèn)為0。SMON進(jìn)程:系統(tǒng)監(jiān)控進(jìn)程,所負(fù)責(zé)的工作有:數(shù)據(jù)庫實(shí)例故障恢復(fù)管理和維護(hù)表空間中的空閑空間系統(tǒng)啟動(dòng)期間,回收所有表空間中的臨時(shí)段PMON進(jìn)程:用戶進(jìn)程監(jiān)控進(jìn)程,負(fù)責(zé)用戶進(jìn)程故障恢復(fù),清理釋放用戶進(jìn)程的內(nèi)存區(qū)域。周期性檢查
20、調(diào)度進(jìn)程和服務(wù)器進(jìn)程狀態(tài)。ARCn進(jìn)程:歸檔進(jìn)程。用于將邪門的日志文件復(fù)制到歸檔日志文件中,防止日志文件組中的日志信息被覆蓋或者破壞。運(yùn)行在數(shù)據(jù)庫服務(wù)器歸檔模式下。RECO進(jìn)程:存在于分布式數(shù)據(jù)庫系統(tǒng)中,用于自動(dòng)解決在分布式數(shù)據(jù)庫系統(tǒng)中出現(xiàn)的事務(wù)故障。主要負(fù)責(zé)事務(wù)回滾,保持分布式系統(tǒng)中數(shù)據(jù)的一致性。2.3.5 數(shù)據(jù)庫字典Oracle數(shù)據(jù)庫字典(data dictionary),是存儲(chǔ)在數(shù)據(jù)庫中的所有對(duì)象信息的知識(shí)庫,Oracle數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)字典獲取對(duì)象信息和安全信息。而用戶和數(shù)據(jù)庫系統(tǒng)管理員則用數(shù)據(jù)字典查詢數(shù)據(jù)庫信息。數(shù)據(jù)字典中保存有數(shù)據(jù)庫中對(duì)象和段的信息,如:表、索引、視圖、包、存
21、儲(chǔ)過程以及與用戶、權(quán)限、角色、審計(jì)和約束等相關(guān)的信息數(shù)據(jù)字典試只讀的,用戶不能修改數(shù)據(jù)信息和結(jié)構(gòu)。數(shù)據(jù)字典主要有:user視圖,all視圖,dba視圖,v$視圖,GV$視圖。詳見P32 表2-2。2.4 Oracle數(shù)據(jù)庫的應(yīng)用結(jié)構(gòu)主要的應(yīng)用結(jié)構(gòu)有:多磁盤結(jié)構(gòu)磁盤映像系統(tǒng)客戶/服務(wù)器系統(tǒng)多線程服務(wù)器系統(tǒng)并行數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)Oracle Web Server系統(tǒng)2.4.1 多磁盤結(jié)構(gòu)圖 2.14 多磁盤結(jié)構(gòu)上的Oracle服務(wù)器 2.4.2 磁盤映像系統(tǒng)磁盤映像的好處。磁盤映像可以作為磁盤失效時(shí)的備份來使用。可以改進(jìn)系統(tǒng)的性能2.4.3 客戶/服務(wù)器系統(tǒng) 應(yīng)用程序運(yùn)行在客戶端的工作站上
22、,Oracle數(shù)據(jù)庫運(yùn)行在服務(wù)器上,二者通過以太網(wǎng)連接在一起。為了使客戶和服務(wù)器易于連接,Oracle提供了SQL*Net的高層網(wǎng)絡(luò)協(xié)議。在客戶/服務(wù)器環(huán)境下,所有客戶都安裝了SQL*Net客戶端軟件,服務(wù)器則安裝相應(yīng)的服務(wù)端軟件。SQL*Net提供了一個(gè)程序代碼的公用接口,而不用考慮其底層的實(shí)現(xiàn)。 基于客戶服務(wù)器的Oracle系統(tǒng) 圖 2.15 基于客戶服務(wù)器的Oracle系統(tǒng) 客戶機(jī)與服務(wù)器通信必須進(jìn)行的幾步操作服務(wù)器必須配置成通過網(wǎng)絡(luò)接受通信。服務(wù)器必須識(shí)別哪個(gè)數(shù)據(jù)庫允許網(wǎng)絡(luò)登錄。服務(wù)器必須運(yùn)行SQL*Net。客戶機(jī)必須配置成通過網(wǎng)絡(luò)進(jìn)行通信??蛻魴C(jī)必須有充足的內(nèi)存和磁盤資源可供使用???/p>
23、戶機(jī)必須已安裝有SQL*Net,并指定一個(gè)連接字符串。三層模式的Oracle系統(tǒng)computerserver客戶機(jī)1客戶機(jī)2數(shù)據(jù)庫服務(wù)器應(yīng)用程序服務(wù)器圖 2.16 三層模式的Oracle系統(tǒng)三層配置的優(yōu)點(diǎn)可量測(cè)性有利于應(yīng)用程序的執(zhí)行易于分布式處理提高了性能能簡(jiǎn)化對(duì)客戶機(jī)的維護(hù)2.4.4 多線程服務(wù)器系統(tǒng)多線程服務(wù)器(MTS)允許多用戶會(huì)話共享一組服務(wù)器進(jìn)程,因而減少了支持大量用戶所必要的資源開銷。同時(shí),多線程服務(wù)器的體系結(jié)構(gòu)也允許降低這些服務(wù)器會(huì)話的全部空閑時(shí)間。多線程服務(wù)器的體系結(jié)構(gòu)不同于專用服務(wù)器。 共享服務(wù)器進(jìn)程不直接與調(diào)度器或服務(wù)器進(jìn)程交互,而是監(jiān)控請(qǐng)求隊(duì)列。 多線程服務(wù)器的下列參數(shù)進(jìn)
24、行設(shè)置mts_dispatchersmts_serversmts_max_servers可以通過在SQL*Plus中查詢動(dòng)態(tài)視圖V$SESSION來確定當(dāng)前連接到啟動(dòng)數(shù)據(jù)庫的類型,若結(jié)果是DEDICATED,則目前是專用服務(wù)器配置;若結(jié)果是SHARED,則目前是多線程服務(wù)器。查詢命令為: SELECT server FROM V$SESSION WHERE audsid=USERENV(SESSIONID); 2.4.5 并行數(shù)據(jù)庫系統(tǒng)配置針對(duì)一個(gè)Oracle實(shí)例訪問的數(shù)據(jù)庫針對(duì)兩個(gè)或兩個(gè)以上數(shù)據(jù)庫實(shí)例(服務(wù)器)訪問同一個(gè)數(shù)據(jù)庫Oracle并行服務(wù)器(oracle parallel serve
25、r,OPS)3個(gè)獨(dú)立的Oracle實(shí)例共享同一數(shù)據(jù)庫文件 圖 2.18 Oracle并行服務(wù)器 并行服務(wù)器的好處可以增加數(shù)據(jù)庫資源的數(shù)量或凈值數(shù)量允許數(shù)據(jù)庫為更多的用戶處理更多的工作提供了一種對(duì)災(zāi)難進(jìn)行恢復(fù)的手段可以根據(jù)執(zhí)行的進(jìn)程的類型對(duì)用戶進(jìn)行分組,并且大量占用CPU的用戶可以留在與常規(guī)聯(lián)機(jī)處理事務(wù)相分離的一個(gè)主機(jī)上設(shè)計(jì)使用并行數(shù)據(jù)庫時(shí)需要注意的問題可以使用不同的初始化參數(shù)配置在并行服務(wù)器數(shù)據(jù)庫上運(yùn)行的各種實(shí)例。用戶可以把系統(tǒng)設(shè)計(jì)為使用具有一個(gè)或多個(gè)富余實(shí)例的并行服務(wù)器,以便在主實(shí)例不可獲取時(shí)仍能支持自己的所有用戶。如果硬件可以支持足夠的節(jié)點(diǎn),可以在相同的數(shù)據(jù)庫上使用并行服務(wù)器的伸縮特性及故
26、障恢復(fù)能力。設(shè)計(jì)使用并行數(shù)據(jù)庫時(shí)需要注意的問題在設(shè)計(jì)多實(shí)例數(shù)據(jù)庫時(shí),在伸縮特性及故障恢復(fù)能力這兩個(gè)功能之間進(jìn)行明確的區(qū)分是非常重要的。 需要做好準(zhǔn)備修改單實(shí)例數(shù)據(jù)庫使用的初始化參數(shù)文件中的參數(shù),以使并行服務(wù)器使用的多個(gè)實(shí)例可以成功地相互作用。 在并行方式下啟動(dòng)一個(gè)實(shí)例的兩種方法需要將初始化文件中的parallel server設(shè)為true。通過在SQL*Plus的STARTUP命令中包括PARALLEL或SHARED關(guān)鍵字。在數(shù)據(jù)庫管理器總控臺(tái)的實(shí)例管理屏上使用SHARED單選按鈕。 2.4.6 分布式數(shù)據(jù)庫系統(tǒng) 分布式數(shù)據(jù)庫系統(tǒng)是作為一個(gè)單獨(dú)的數(shù)據(jù)庫但位于不同場(chǎng)所的系統(tǒng)。這些場(chǎng)所可以在任何地
27、方,可以在緊鄰的辦公室,也可以在地球的另一端。在一個(gè)由不同節(jié)點(diǎn)連接起來的網(wǎng)絡(luò)環(huán)境中,分布式數(shù)據(jù)庫擔(dān)當(dāng)一個(gè)單獨(dú)的系統(tǒng)。在一個(gè)分布式環(huán)境中,不同服務(wù)器(主機(jī))上的數(shù)據(jù)庫彼此共享數(shù)據(jù)。每個(gè)服務(wù)器既能在物理上分離,又可以保持彼此間的邏輯關(guān)系。 分布式數(shù)據(jù)庫系統(tǒng) 圖 2.19 分布式數(shù)據(jù)庫系統(tǒng) 分布式事務(wù)會(huì)的好處其他服務(wù)器上的數(shù)據(jù)庫可以被更新,并且這些事務(wù)可以與其他事務(wù)組成一個(gè)邏輯單元數(shù)據(jù)庫對(duì)2PC的使用 接收的數(shù)據(jù)庫的3種響應(yīng)方式準(zhǔn)備好已準(zhǔn)備好進(jìn)行更新只讀沒有準(zhǔn)備的必要退出子處理不能執(zhí)行更新2.4.7 Oracle Webserver系統(tǒng) 隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,數(shù)據(jù)庫技術(shù)也面臨著一場(chǎng)深刻的變革 Oracle Web Server相當(dāng)于一個(gè)簡(jiǎn)單請(qǐng)求傳送者的角色 Oracle Web Server支持用內(nèi)建的過程創(chuàng)建HTML文檔 Oracle Web Server的基本組成及功能 Web監(jiān)聽器在Oracle主機(jī)上的HTTP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代短詩遠(yuǎn)和近
- 石河子大學(xué)《通信原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《葡萄酒市場(chǎng)學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《大數(shù)據(jù)分析與可視化》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《優(yōu)化理論與方法》2021-2022學(xué)年第一學(xué)期期末試卷
- 腫瘤患者的飲食營(yíng)養(yǎng)護(hù)理
- 沈陽理工大學(xué)《微波技術(shù)與天線》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《內(nèi)燃機(jī)原理》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《機(jī)械制造裝備設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《高頻電子電路》2021-2022學(xué)年期末試卷
- 國(guó)開2024年秋《經(jīng)濟(jì)法學(xué)》計(jì)分作業(yè)1-4答案形考任務(wù)
- 知道網(wǎng)課智慧《設(shè)計(jì)創(chuàng)新思維》測(cè)試答案
- 生涯發(fā)展報(bào)告 (修改)
- ICC國(guó)際商會(huì)NCNDA和IMFPA中英文對(duì)照可編輯
- 關(guān)于房屋建筑和市政工程界定文件
- 各種表面活性劑耐堿性一覽表
- 我最喜歡的運(yùn)動(dòng)英語作文(精選3篇)
- 北師大版小學(xué)四年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)說課稿
- 【中考英語】中考看圖寫話質(zhì)量分析
- 關(guān)于生態(tài)美育的思考-生態(tài)美育3篇
- 畢節(jié)衛(wèi)生學(xué)校護(hù)理專業(yè)人才培養(yǎng)目標(biāo)評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論