Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)教學(xué)課程_第1頁(yè)
Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)教學(xué)課程_第2頁(yè)
Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)教學(xué)課程_第3頁(yè)
Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)教學(xué)課程_第4頁(yè)
Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)教學(xué)課程_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)教師:陳玉明E-Mail:ymchen@1內(nèi)容簡(jiǎn)介本課主要講授Oracle10g體系結(jié)構(gòu)適用于數(shù)據(jù)庫(kù)管理員(DBA)Oracle9i同樣適用2概要DBA的職責(zé)Oracle體系結(jié)構(gòu)由內(nèi)存結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)組成內(nèi)存結(jié)構(gòu)由SGA、PGA組成存儲(chǔ)結(jié)構(gòu)由邏輯存儲(chǔ)、物理存儲(chǔ)組成進(jìn)程結(jié)構(gòu)由用戶(hù)進(jìn)程和Oracle進(jìn)程組成.3什么是DBA?數(shù)據(jù)庫(kù)管理員是一個(gè)或一組全面負(fù)責(zé)管理和控制數(shù)據(jù)庫(kù)系統(tǒng)的人員。

簡(jiǎn)稱(chēng):DBA(DataBaseAdministrator)4DBA的主要職責(zé)了解ORACLE數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)負(fù)責(zé)數(shù)據(jù)庫(kù)管理系統(tǒng)的安裝和升級(jí)啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)管理和監(jiān)控?cái)?shù)據(jù)庫(kù)用戶(hù)管理數(shù)據(jù)庫(kù)特權(quán)管理存儲(chǔ)空間建立數(shù)據(jù)庫(kù)后備和恢復(fù)數(shù)據(jù)庫(kù)5DBA與理論知識(shí)作為一名合格的DBA,必須深入地掌握Oracle10g數(shù)據(jù)庫(kù)的體系結(jié)構(gòu).在理論知識(shí)的指導(dǎo)下,才會(huì)使許多難以理解和掌握的操作變得容易.6Oracle工作原理客戶(hù)服務(wù)器服務(wù)器進(jìn)程(PGA區(qū))用戶(hù)進(jìn)程(SQL語(yǔ)句)Oracleserver數(shù)據(jù)庫(kù)系統(tǒng)處理過(guò)程示意7處理過(guò)程可以簡(jiǎn)單的描述為:用戶(hù)在其機(jī)器上運(yùn)行基于Oracle的應(yīng)用程序(如:SQL*PLUS、PL/SQLDeveloper等),即啟動(dòng)用戶(hù)進(jìn)程.客戶(hù)機(jī)、服務(wù)器之間建立連接(Connect).服務(wù)器為用戶(hù)建立會(huì)話(huà)(Session),并為該會(huì)話(huà)建立一個(gè)PGA(ProgramGlobalArea,程序全局區(qū))以存儲(chǔ)與該會(huì)話(huà)相關(guān)的信息.在同一個(gè)連接中,不同的用戶(hù)有不同的會(huì)話(huà).啟動(dòng)服務(wù)進(jìn)程,由該服務(wù)進(jìn)程負(fù)責(zé)執(zhí)行該會(huì)話(huà)的各項(xiàng)任務(wù).用戶(hù)進(jìn)程發(fā)送SQL語(yǔ)句(select、update、commit….)服務(wù)器進(jìn)程解析、編譯、執(zhí)行SQL語(yǔ)句,然后將結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)并返回結(jié)果給用戶(hù)進(jìn)程。用戶(hù)進(jìn)程接收返回的SQL執(zhí)行結(jié)果。在應(yīng)用程序中顯示SQL執(zhí)行結(jié)果.Oracle工作原理客戶(hù)服務(wù)器服務(wù)器進(jìn)程(PGA區(qū))用戶(hù)進(jìn)程(SQL語(yǔ)句)Oracleserver8處理查詢(xún)用戶(hù)進(jìn)程服務(wù)器進(jìn)程解析StatementOKHandle執(zhí)行OKHandle提取ResultsSELECT*FROMempORDERBYename;9總體結(jié)構(gòu)總體結(jié)構(gòu)的三大部分10總體結(jié)構(gòu)11總體結(jié)構(gòu)其中:內(nèi)存結(jié)構(gòu)::包括SGA和PGA.使用內(nèi)內(nèi)存最多的的是SGA,同時(shí)也也是影響數(shù)數(shù)據(jù)庫(kù)性能能的最大參參數(shù).進(jìn)程結(jié)構(gòu)::包括前臺(tái)進(jìn)進(jìn)程、后臺(tái)臺(tái)進(jìn)程.前前臺(tái)進(jìn)程是是指服務(wù)進(jìn)進(jìn)程和用戶(hù)戶(hù)進(jìn)程.前前臺(tái)進(jìn)程是是根據(jù)實(shí)際際需要而運(yùn)運(yùn)行的,并并在需要結(jié)結(jié)束后立刻刻結(jié)束。后后臺(tái)進(jìn)程是是指在Oracle數(shù)據(jù)庫(kù)啟啟動(dòng)后,自自動(dòng)啟動(dòng)的的幾個(gè)操作作系統(tǒng)進(jìn)程程.存儲(chǔ)結(jié)構(gòu)::包括控制文文件、數(shù)據(jù)據(jù)結(jié)構(gòu)、日日志文件等等操作系統(tǒng)統(tǒng)文件.12存儲(chǔ)結(jié)構(gòu)Oracle數(shù)據(jù)庫(kù)庫(kù)的存儲(chǔ)結(jié)結(jié)構(gòu)分為邏邏輯存儲(chǔ)結(jié)結(jié)構(gòu)和物理理存儲(chǔ)結(jié)構(gòu)構(gòu),這兩種種存儲(chǔ)結(jié)構(gòu)構(gòu)既相互獨(dú)獨(dú)立又相互互聯(lián)系.數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)文件日志文件控制文件參數(shù)文件物理結(jié)構(gòu)表空間段范圍數(shù)據(jù)庫(kù)塊邏輯結(jié)構(gòu)13物理存儲(chǔ)結(jié)構(gòu)構(gòu)物理存儲(chǔ)結(jié)構(gòu)構(gòu)主要描述Oracle數(shù)據(jù)庫(kù)的外外部存儲(chǔ)結(jié)構(gòu)構(gòu),即在操作作系統(tǒng)種如何何組織、管理理數(shù)據(jù).因此,物理存存儲(chǔ)結(jié)構(gòu)是和和操作系統(tǒng)平平臺(tái)有關(guān)的.14邏輯存儲(chǔ)結(jié)構(gòu)構(gòu)邏輯存儲(chǔ)結(jié)構(gòu)構(gòu)主要描述Oracle數(shù)據(jù)庫(kù)的內(nèi)內(nèi)部存儲(chǔ)結(jié)構(gòu)構(gòu),即從技術(shù)術(shù)概念上描述述在Oracle數(shù)據(jù)庫(kù)庫(kù)種如何組織織、管理數(shù)據(jù)據(jù).因此,邏輯存存儲(chǔ)結(jié)構(gòu)是和和操作系統(tǒng)平平臺(tái)無(wú)關(guān)的,是由Oracle數(shù)據(jù)據(jù)庫(kù)創(chuàng)建和管管理的.15DBA注意DBA必須對(duì)對(duì)這兩種存儲(chǔ)儲(chǔ)結(jié)構(gòu)有清晰晰的理解,并并且要清楚在在一個(gè)具體數(shù)數(shù)據(jù)庫(kù)應(yīng)用系系統(tǒng)中,這兩兩種存儲(chǔ)結(jié)構(gòu)構(gòu)的具體對(duì)應(yīng)應(yīng)關(guān)系,否則則就不能進(jìn)行行正常的管理理操作、數(shù)據(jù)據(jù)庫(kù)備份與恢恢復(fù)、性能優(yōu)優(yōu)化等。16存儲(chǔ)結(jié)構(gòu)物理存儲(chǔ)結(jié)構(gòu)構(gòu)與邏輯存儲(chǔ)儲(chǔ)結(jié)構(gòu)之間的的關(guān)系從物理上看,數(shù)據(jù)庫(kù)由控制文件、數(shù)數(shù)據(jù)文件、重重做日志文件件等操作系統(tǒng)文文件組成;從邏輯上來(lái)看看,數(shù)據(jù)庫(kù)是是由系統(tǒng)表空間、、用戶(hù)表空間間等組成。表空間是最大大的邏輯單位位,塊是最小小的邏輯單位位。邏輯存儲(chǔ)結(jié)構(gòu)構(gòu)中的塊最后后對(duì)應(yīng)到操作作系統(tǒng)中的塊塊.17Oracle10g體體系結(jié)構(gòu)--2.1物理結(jié)構(gòu)構(gòu)18Oracle數(shù)據(jù)庫(kù)物理理結(jié)構(gòu)數(shù)據(jù)文件日志文件控制文件參數(shù)文件19數(shù)據(jù)文件(DataFile)是物理存儲(chǔ)Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)據(jù)的文件。其其特點(diǎn)如下::每一個(gè)數(shù)據(jù)文文件只與一個(gè)個(gè)數(shù)據(jù)庫(kù)相聯(lián)聯(lián)系。數(shù)據(jù)文件一旦旦被建立則不不能修改其大大小。一個(gè)表空間可可包含一個(gè)或或多個(gè)數(shù)據(jù)文文件。一個(gè)數(shù)據(jù)文件件只能屬于一一個(gè)表空間.數(shù)據(jù)文件(DataFile)20重做日志文件件(RedoFile)重做日志文件件(RedoLogFile)記錄所有對(duì)數(shù)數(shù)據(jù)庫(kù)數(shù)據(jù)的的修改,以備備恢復(fù)數(shù)據(jù)時(shí)時(shí)使用。其特特點(diǎn)如下:每一個(gè)數(shù)據(jù)庫(kù)庫(kù)至少包含兩兩個(gè)日志文件件組。日志文件組以以循環(huán)方式進(jìn)進(jìn)行寫(xiě)操作。。每一個(gè)日志文文件成員對(duì)應(yīng)應(yīng)一個(gè)物理文文件。21日志切換(LogSwitch)日志切換(LogSwitch)是為實(shí)現(xiàn)日志志文件組的循循環(huán)使用而設(shè)設(shè)置的。出現(xiàn)現(xiàn)日志開(kāi)關(guān)的的情況如下::當(dāng)一個(gè)日志文文件組被填滿(mǎn)滿(mǎn)時(shí)關(guān)閉數(shù)據(jù)庫(kù)時(shí)時(shí)DBA手動(dòng)切切換日志22日志文件寫(xiě)操操作LogFile1LogFile2Group1Group2Member2.1Member1.123鏡像日志文件件鏡像日志文件件是為防止日志志文件的丟失失,在不同磁磁盤(pán)上同時(shí)維維護(hù)兩個(gè)或多多個(gè)聯(lián)機(jī)日志志文件的副本本。其特點(diǎn)如下::每個(gè)日志文件件組至少包含含兩個(gè)日志文文件成員。每組的成員數(shù)數(shù)目相同。同組的所有成成員同時(shí)被修修改。同組的成員大大小相同,不不同組的成員員大小可不同同.24鏡像日志文件件操作Group1Group2LogFile1LogFile2Member2.1Member1.1LogFile3LogFile4Member2.2Member1.2Disk1Disk225控制文件控制文件(ControlFile)是一個(gè)較小的的二進(jìn)制文件件,用于描述述數(shù)據(jù)庫(kù)結(jié)構(gòu)構(gòu)。描述信息如下下:數(shù)據(jù)庫(kù)建立的的日期。數(shù)據(jù)庫(kù)名。數(shù)據(jù)庫(kù)中所有有數(shù)據(jù)文件和和日志文件的的文件名及路路徑?;謴?fù)數(shù)據(jù)庫(kù)時(shí)時(shí)所需的同步步信息。要點(diǎn)注意:在打開(kāi)和存取取數(shù)據(jù)庫(kù)時(shí)都都要訪(fǎng)問(wèn)該文文件。鏡像控制文件件。記錄控制文件件名及路徑的的參數(shù)為:CONTROL_FILES26參數(shù)文件參數(shù)文件(ParameterFile)是一個(gè)文本文文件,可直接接使用操作系系統(tǒng)下的文本本編輯器對(duì)其其內(nèi)容進(jìn)行修修改。該文件件只在建立數(shù)數(shù)據(jù)庫(kù)或啟動(dòng)動(dòng)實(shí)例時(shí)才被被訪(fǎng)問(wèn),在修修改該文件之之前必須關(guān)閉閉實(shí)例。初始參數(shù)文件件:init.ora生成參數(shù)文件件:initSID.oraconfig.ora位于OracleHome下,如::C:\oracle\admin\TestDB\pfile27參數(shù)文件的作作用參數(shù)文件的作作用:確定存儲(chǔ)結(jié)構(gòu)構(gòu)的大小。設(shè)置數(shù)據(jù)庫(kù)的的全部缺省值值。設(shè)置數(shù)據(jù)庫(kù)的的范圍。設(shè)置數(shù)據(jù)庫(kù)的的各種物理屬屬性。優(yōu)化數(shù)據(jù)庫(kù)性性能。28參數(shù)文件的數(shù)數(shù)據(jù)類(lèi)型參數(shù)文件中參參數(shù)的數(shù)據(jù)類(lèi)類(lèi)型:整型例:DB_BLOCK_SIZE=2048字符型例:DB_NAME=‘‘ora9’’邏輯型例:CHECKPOINT_PROCESS=true29Oracle10g體體系結(jié)構(gòu)--2.2邏邏輯結(jié)構(gòu)30Oralce的邏輯結(jié)構(gòu)構(gòu)組成Oracle的邏輯結(jié)構(gòu)構(gòu)是由一個(gè)或多多個(gè)表空間組組成。一個(gè)表空間(tablespace)由一組段段組成一個(gè)段(segment)由一組區(qū)區(qū)組成一個(gè)區(qū)(extent)由一批數(shù)據(jù)據(jù)庫(kù)塊組成一個(gè)數(shù)據(jù)庫(kù)塊塊(block)對(duì)應(yīng)一一個(gè)或多個(gè)物物理塊31邏輯結(jié)構(gòu)示意意圖TablespaceDatabaseBlocksExtent84KSegment112KDatabaseDataFile表空間段區(qū)塊32數(shù)據(jù)庫(kù)塊(Block)數(shù)據(jù)庫(kù)塊(DatabaseBlock)是數(shù)據(jù)庫(kù)使用用的I/O最最小單元,又又稱(chēng)邏輯塊或或ORACLE塊。一個(gè)數(shù)數(shù)據(jù)庫(kù)庫(kù)塊對(duì)對(duì)應(yīng)一一個(gè)或或多個(gè)個(gè)物理理塊,,塊的的大小小由參參數(shù)DB_BLOCK_SIZE確定。。33數(shù)據(jù)庫(kù)庫(kù)塊(Block)塊的大大小是是操作作系統(tǒng)統(tǒng)塊大大小的的整數(shù)數(shù)倍.以Win2K為為例,操作作系統(tǒng)統(tǒng)塊(OSblock)的的大小小為4kb,所所以O(shè)racleBlock的的大小小可以以是4kb,8kb,16kb等等等。。如果塊塊的大大小為為4kb,,某表表每行行的數(shù)數(shù)據(jù)是是100bytes.,如如果某某查詢(xún)?cè)冋Z(yǔ)句句只返返回1行數(shù)數(shù)據(jù),那么么,在在將數(shù)數(shù)據(jù)讀讀入到到數(shù)據(jù)據(jù)高速速緩存存時(shí),讀取取的數(shù)數(shù)據(jù)量量時(shí)4kb而不不是100bytes.34區(qū)(extent)區(qū)(Extent)是數(shù)據(jù)據(jù)庫(kù)存存儲(chǔ)空空間分分配的的邏輯輯單位位,一一個(gè)區(qū)區(qū)由一一組數(shù)數(shù)據(jù)庫(kù)庫(kù)塊組組成,,區(qū)是是由段段分配配的,,分配配的第第一個(gè)個(gè)區(qū)稱(chēng)稱(chēng)初始區(qū)區(qū),以后后分配配的區(qū)區(qū)稱(chēng)增量區(qū)區(qū)。35段(segment)段(Segment)是表空空間中中一個(gè)個(gè)指定定類(lèi)型型的邏邏輯存存儲(chǔ)結(jié)結(jié)構(gòu),,它由由一個(gè)個(gè)或多多個(gè)區(qū)組成,段將將占用用并增增長(zhǎng)存存儲(chǔ)空空間。。36段的分分類(lèi)引導(dǎo)段(BootstrapSegment)存儲(chǔ)數(shù)據(jù)字典表的定義段的分分類(lèi)回滾段(RollbackSegment)存儲(chǔ)修改之前的位置和值索引段(IndexSegment)存儲(chǔ)表上最佳查詢(xún)的所有索引數(shù)據(jù)臨時(shí)段(TemporarySegment)存儲(chǔ)表排序操作期間建立的臨時(shí)表的數(shù)據(jù)數(shù)據(jù)(表)段(DataSegment)存儲(chǔ)表中的所有數(shù)據(jù)37表空間間(tablespace)表空間間是最最大的的邏輯輯單位位,對(duì)應(yīng)一一個(gè)或或多個(gè)個(gè)數(shù)據(jù)據(jù)文件件,表表空間間的大大小是是它所所對(duì)應(yīng)應(yīng)的數(shù)數(shù)據(jù)文文件大大小的的總和和。38表空間間與數(shù)數(shù)據(jù)庫(kù)庫(kù)之間間的關(guān)關(guān)系數(shù)據(jù)庫(kù)庫(kù)、表表空間間、數(shù)數(shù)據(jù)文文件、、方案案對(duì)象象(schemaobject)之之間的的關(guān)系系39Oracle10g創(chuàng)創(chuàng)建的的表空空間Oracle10g自自動(dòng)創(chuàng)創(chuàng)建的的表空空間有有:Example(實(shí)實(shí)例表表空間間)Sysaux(輔助助系統(tǒng)統(tǒng)表空空間)System(系統(tǒng)統(tǒng)表空空間)Temp(臨時(shí)時(shí)表空空間)Undotbs(重重做表表空間間)Users(用用戶(hù)的的表空空間)40SYSTEM(系統(tǒng)統(tǒng))表表空間間System:系系統(tǒng)統(tǒng)表空空間,存放放關(guān)于于表空空間的的名稱(chēng)稱(chēng)、控控制文文件、、數(shù)據(jù)據(jù)文件件等管管理信信息,,是最最重要要的表表空間間.它屬于于Sys、、System兩個(gè)個(gè)schema(方方案),僅僅被這這兩個(gè)個(gè)或其其他具具有足足夠權(quán)權(quán)限的的用戶(hù)戶(hù)使用用。但是均均不可可刪除除或者者重命命名System表表空間間.41其他表表空間間Temp:臨臨時(shí)表表空間間存放放臨時(shí)時(shí)表和和臨時(shí)時(shí)數(shù)據(jù)據(jù),用用于排排序。。Users:用用戶(hù)戶(hù)表空空間,,永久久存放放用戶(hù)戶(hù)對(duì)象象和私私有信信息,,也被被成為為數(shù)據(jù)據(jù)表空空間。。Sysaux:輔助助系統(tǒng)統(tǒng)表空空間,,用于于減少少系統(tǒng)統(tǒng)負(fù)荷荷,提提高系系統(tǒng)的的作業(yè)業(yè)效率率.一般地地:系系統(tǒng)用用戶(hù)使使用system表表空間間,非非系統(tǒng)統(tǒng)用戶(hù)戶(hù)使用用Users表表空間間42Oracle10g體體系結(jié)結(jié)構(gòu)--2.3軟軟件結(jié)結(jié)構(gòu)43例程(instance)Oracle數(shù)數(shù)據(jù)庫(kù)庫(kù)結(jié)構(gòu)構(gòu)又稱(chēng)稱(chēng)為例例程結(jié)結(jié)構(gòu).數(shù)據(jù)庫(kù)庫(kù)啟動(dòng)動(dòng)時(shí)::Oracle首首先要要在內(nèi)內(nèi)存中中獲取取、劃劃分、、保留留各種種用途途的區(qū)區(qū)域,運(yùn)行行各種種用途途的后后臺(tái),即::創(chuàng)建建一個(gè)個(gè)例程程(instance);然后由由該例例程裝裝載(mount)、打打開(kāi)(open)數(shù)數(shù)據(jù)庫(kù)庫(kù);最后由由這個(gè)個(gè)例程程來(lái)訪(fǎng)訪(fǎng)問(wèn)和和控制制數(shù)據(jù)據(jù)庫(kù)的的各種種物理理結(jié)構(gòu)構(gòu)44例程(instance)如果把把Oracle數(shù)據(jù)據(jù)庫(kù)比比作一一部汽汽車(chē),,instance相當(dāng)當(dāng)于汽汽車(chē)的的發(fā)動(dòng)動(dòng)機(jī)一一樣,啟動(dòng)動(dòng)oracle數(shù)據(jù)據(jù)庫(kù)前前提應(yīng)應(yīng)先啟啟動(dòng)instance.45例程(instance)當(dāng)用戶(hù)戶(hù)連接接到數(shù)數(shù)據(jù)庫(kù)庫(kù)并使使用數(shù)數(shù)據(jù)庫(kù)庫(kù)時(shí),,實(shí)際際上是是連接接到該該數(shù)據(jù)據(jù)庫(kù)的的例程程,通通過(guò)例例程來(lái)來(lái)連接接、使使用數(shù)數(shù)據(jù)庫(kù)庫(kù)。所以例例程是是用戶(hù)戶(hù)和數(shù)數(shù)據(jù)庫(kù)庫(kù)之間間的中中間層層。例程與與數(shù)據(jù)據(jù)庫(kù)的的區(qū)別別:數(shù)據(jù)庫(kù)庫(kù)指的的是存存儲(chǔ)數(shù)數(shù)據(jù)的的物理理結(jié)構(gòu)構(gòu),總總是實(shí)實(shí)際存存在的的;例程則則是由由內(nèi)存存結(jié)構(gòu)構(gòu)和一一系列列進(jìn)程程組成成,可可以啟啟動(dòng)和和關(guān)閉閉。46OracleInstance的組組成實(shí)例(INSTANCE))是存取取和控控制數(shù)數(shù)據(jù)庫(kù)庫(kù)的軟軟件機(jī)機(jī)制,,它由由系統(tǒng)統(tǒng)全局局區(qū)((SystemGlobalArea,,簡(jiǎn)稱(chēng)稱(chēng)SGA))和后后臺(tái)進(jìn)進(jìn)程組組成。。后臺(tái)進(jìn)程實(shí)例SGA數(shù)據(jù)高速緩緩存共享池池日志高速緩緩存47軟件結(jié)結(jié)構(gòu)內(nèi)存結(jié)結(jié)構(gòu)進(jìn)程結(jié)結(jié)構(gòu)內(nèi)存結(jié)結(jié)構(gòu)和進(jìn)程結(jié)結(jié)構(gòu)共同組組成了了軟件件結(jié)構(gòu)構(gòu)48內(nèi)存結(jié)結(jié)構(gòu)內(nèi)存結(jié)結(jié)構(gòu)是是Oracle數(shù)據(jù)據(jù)庫(kù)體體系中中最為為重要要的一一部分分,內(nèi)內(nèi)存也也是影影響數(shù)數(shù)據(jù)庫(kù)庫(kù)性能能的第第一因因素.按照內(nèi)內(nèi)存的的使用用方法法的不不同,Oracle數(shù)據(jù)據(jù)庫(kù)的的內(nèi)存存又可可以分分為SGA(SysteGlobalArea)和和PGA(ProgramGlobalArea).49系統(tǒng)全全局區(qū)區(qū)(SGA)SGA是ORACLE系統(tǒng)統(tǒng)為實(shí)實(shí)例分分配的的一組組共享享緩沖沖存儲(chǔ)儲(chǔ)區(qū),,用于于存放放數(shù)據(jù)據(jù)庫(kù)數(shù)數(shù)據(jù)和和控制制信息息,以以實(shí)現(xiàn)現(xiàn)對(duì)數(shù)數(shù)據(jù)庫(kù)庫(kù)數(shù)據(jù)據(jù)的管管理和和操作作。每個(gè)例例程都都只有有一個(gè)個(gè)SGA.它是不不同用用戶(hù)進(jìn)進(jìn)程與與服務(wù)務(wù)進(jìn)程程進(jìn)行行通信信的中中心,數(shù)據(jù)據(jù)庫(kù)的的各種種操作作主要要在SGA中進(jìn)進(jìn)行,所以以稱(chēng)其其為系系統(tǒng)全全局區(qū)區(qū).創(chuàng)建例例程時(shí)時(shí),Oracle為為SGA分分配內(nèi)內(nèi)存;終止例例程時(shí)時(shí),釋釋放SGA所占占用的的內(nèi)存存.50系統(tǒng)全全局區(qū)區(qū)(SGA)系統(tǒng)全全局區(qū)區(qū)由以以下幾幾個(gè)部部分組組成::51數(shù)據(jù)高高速緩緩存(DatabaseBufferCache)保存最最近從從數(shù)據(jù)據(jù)文件件中讀讀取的的數(shù)據(jù)據(jù)塊,其中中的數(shù)數(shù)據(jù)被被所有有用戶(hù)戶(hù)共享享.兩個(gè)參參數(shù)影影響DBC:DB_BLOCK_SIZE緩緩沖沖區(qū)數(shù)數(shù)據(jù)塊塊大小小DB_BLOCK_BUFFERS緩緩沖區(qū)區(qū)數(shù)據(jù)據(jù)塊個(gè)個(gè)數(shù)52初次訪(fǎng)訪(fǎng)問(wèn)數(shù)數(shù)據(jù)時(shí)時(shí),Oracle將將讀取取磁盤(pán)盤(pán)上的的數(shù)據(jù)據(jù)文件件,將將數(shù)據(jù)據(jù)放入入數(shù)據(jù)據(jù)高速速緩存存,再再處理理數(shù)據(jù)據(jù);如果數(shù)數(shù)據(jù)已已經(jīng)位位于數(shù)數(shù)據(jù)高高速緩緩存中中時(shí),Oracle直接接操作作數(shù)據(jù)據(jù)。數(shù)據(jù)緩沖區(qū)數(shù)據(jù)文件數(shù)據(jù)據(jù)高高速速緩緩存存(DatabaseBufferCache)53數(shù)據(jù)據(jù)高高速速緩緩存存(DBC)DBC的的緩緩存存塊塊分分為為三三類(lèi)類(lèi):臟緩緩存存塊塊存放放已已經(jīng)經(jīng)被被修修改改過(guò)過(guò)的的緩緩存存塊塊.當(dāng)SQL修修改改某某個(gè)個(gè)緩緩存存塊塊中中的的數(shù)數(shù)據(jù)據(jù),,則則這這個(gè)個(gè)緩緩存存塊塊被被標(biāo)標(biāo)記記為為臟臟緩緩存存塊塊空閑閑緩緩存存塊塊等待待寫(xiě)寫(xiě)入入數(shù)數(shù)據(jù)據(jù)的的空空閑閑緩緩存存塊塊.命中中緩緩存存塊塊最近近正正在在被被訪(fǎng)訪(fǎng)問(wèn)問(wèn)的的緩緩存存塊塊.54管理理緩緩存存塊塊的的列列表表Oracle通通過(guò)過(guò)2個(gè)個(gè)列列表表來(lái)來(lái)管管理理上上述述緩緩存存塊塊:臟列列表表(DIRTY)包括括被被修修改改過(guò)過(guò)但但尚尚未未寫(xiě)寫(xiě)到到數(shù)數(shù)據(jù)據(jù)文文件件的的緩緩沖沖塊塊。。LRU(LeastRecentlyUsed)列列表表包括括空空閑閑緩緩沖沖塊塊、、命命中中緩緩存存塊塊,以以及及還還沒(méi)沒(méi)有有移移到到臟臟列列表表的的緩緩沖沖塊塊。。55數(shù)據(jù)據(jù)高高速速緩緩存存工工作作原原理理讀數(shù)數(shù)據(jù)據(jù)入入DBC之之前前,先先在在LRU中中搜搜索索空空閑閑緩緩存存塊塊;在在搜搜索索過(guò)過(guò)程程中中如如果果發(fā)發(fā)現(xiàn)現(xiàn)臟臟緩緩存存塊塊,則則將將其其移移入入DIRTY;找到到足足夠夠的的空空閑閑塊塊,將將所所有有數(shù)數(shù)據(jù)據(jù)讀讀入入;;3,,4.如如果果空空閑閑塊塊不不足足,,則則暫暫停停搜搜索索,,Oralce立立刻刻啟啟動(dòng)動(dòng)DBWR進(jìn)進(jìn)程程,將將DIRTY中中的的臟臟緩緩存存塊塊數(shù)數(shù)據(jù)據(jù)寫(xiě)寫(xiě)入入數(shù)數(shù)據(jù)據(jù)文文件件釋釋放放足足夠夠的的空空閑閑緩緩存存塊塊。。數(shù)據(jù)據(jù)庫(kù)庫(kù)寫(xiě)寫(xiě)進(jìn)進(jìn)程程56重做做日日志志高高速速緩緩存存當(dāng)執(zhí)執(zhí)行行DML(DataManipulationLanguage,數(shù)數(shù)據(jù)據(jù)操操縱縱語(yǔ)語(yǔ)言言)如如:update、、delete、、insert或或者者create、、alter、、drop等等語(yǔ)語(yǔ)句句時(shí)時(shí),Oracle都都會(huì)會(huì)為為這這些些操操作作生生成成重重做做記記錄錄.重做做日日志志高高速速緩緩存存就就是是用用于于存存儲(chǔ)儲(chǔ)重重做做記記錄錄的的緩緩存存.57重做做日日志志高高速速緩緩存存工工作作原原理理為提提高高效效率率,重重做做記記錄錄并并不不直直接接寫(xiě)寫(xiě)入入磁磁盤(pán)盤(pán)的的重重做做日日志志文文件件,而而是是先先寫(xiě)寫(xiě)入入重重做做日日志志緩緩存存;當(dāng)重重做做日日志志緩緩存存中中的的重重做做記記錄錄達(dá)達(dá)到到一一定定數(shù)數(shù)量量時(shí)時(shí),由由LGWR進(jìn)進(jìn)程程寫(xiě)寫(xiě)入入重重做做日日志志.(先先內(nèi)內(nèi)存存后后磁磁盤(pán)盤(pán))當(dāng)2個(gè)個(gè)(至至少少2個(gè)個(gè))重重做做日日志志切切換換時(shí)時(shí),由由ARCH將將重重做做日日志志中中的的數(shù)數(shù)據(jù)據(jù)寫(xiě)寫(xiě)入入歸歸檔檔日日志志文文件件,,以以做做備備份份.日志志寫(xiě)寫(xiě)進(jìn)進(jìn)程程歸檔檔進(jìn)進(jìn)程程58共享享池池(SharedPool)共享享池池保保存存了了最最近近執(zhí)執(zhí)行行的的SQL語(yǔ)語(yǔ)句句、、PL/SQL程程序序和和數(shù)數(shù)據(jù)據(jù)字字典典信信息息,是是對(duì)對(duì)SQL語(yǔ)語(yǔ)句句和和PL/SQL程程序序進(jìn)進(jìn)行行語(yǔ)語(yǔ)法法分分析析、、編編譯譯、、執(zhí)執(zhí)行行的的內(nèi)內(nèi)存存區(qū)區(qū).59共享池池(SharedPool)共享池池由庫(kù)緩存存和數(shù)據(jù)字字典緩緩存組成。。參數(shù)SHARED_POOL_SIZE確定共共享池池的大大小。。庫(kù)緩存存(LibraryCache)區(qū)區(qū)包括括解析用用戶(hù)進(jìn)進(jìn)程提提交的的SQL語(yǔ)語(yǔ)句或或PL/SQL程序序保存最最近解解析過(guò)過(guò)的SQL語(yǔ)句句或PL/SQL程程序數(shù)據(jù)字字典區(qū)區(qū)(Dictionarycache)用于于存放放數(shù)據(jù)據(jù)字典典信息息行。。60OracleDBMS執(zhí)行行各種種SQL、、PL/SQL之前前,要要對(duì)其其進(jìn)行行語(yǔ)法法上的的解析析、對(duì)對(duì)象上上的確確認(rèn)、、權(quán)限限上的的判斷斷、操操作上上的優(yōu)優(yōu)化等等一系系列操操作,,并生生成執(zhí)執(zhí)行計(jì)計(jì)劃。。庫(kù)緩存存保存存了已已經(jīng)解解析的的SQL和和PL/SQL。庫(kù)緩存存61數(shù)據(jù)字字典緩緩存在Oracle運(yùn)行行過(guò)程程中,Oracle會(huì)頻頻繁的的對(duì)數(shù)數(shù)據(jù)字字典中中的表表、視視圖進(jìn)進(jìn)行訪(fǎng)訪(fǎng)問(wèn),,以便便確定定操作作的數(shù)數(shù)據(jù)對(duì)對(duì)象是是否存存在、、是否否具有有合適適的權(quán)權(quán)限等等信息息。數(shù)據(jù)字字典緩緩保存存了最最常用用的數(shù)數(shù)據(jù)字字典信信息。。數(shù)據(jù)字字典緩緩存中中存放放的記記錄是是一條條一條條的,而其他他緩存存區(qū)中中保存存的是是數(shù)據(jù)據(jù)塊.62大池大池用用于需需要大大內(nèi)存存操作作提供供相對(duì)對(duì)獨(dú)立立的內(nèi)內(nèi)存空空間,,以便便提高高性能能。大池是是可選選的內(nèi)內(nèi)存結(jié)結(jié)構(gòu)。。DBA可以以決定定是否否需要要在SGA中創(chuàng)創(chuàng)建大大池。。需要大大池的的操作作:數(shù)據(jù)庫(kù)庫(kù)備份份和恢恢復(fù)大量排排序的的SQL語(yǔ)語(yǔ)句并行化化的數(shù)數(shù)據(jù)庫(kù)庫(kù)操作作63Java池池8i以以后提提供的的對(duì)Java的的支持持,用用于存存放Java代代碼、、Java程序序等.一般不不小于于20M,以便便虛擬擬機(jī)運(yùn)運(yùn)行.64PGA(ProgramGlobalArea)PGA是用用戶(hù)進(jìn)進(jìn)程連連接到到數(shù)據(jù)據(jù)庫(kù),并創(chuàng)創(chuàng)建一一個(gè)對(duì)對(duì)應(yīng)的的會(huì)話(huà)話(huà)時(shí),,由Oracle為為服務(wù)務(wù)進(jìn)程程分配配的,,專(zhuān)門(mén)門(mén)用于于當(dāng)前前用戶(hù)戶(hù)會(huì)話(huà)話(huà)的內(nèi)內(nèi)存區(qū)區(qū)。PGA是非非共享享的,,而SGA是共共享的的。PGA大小小由操操作系系統(tǒng)決決定,,并且且分配配后保保持不不變;;會(huì)話(huà)終終止時(shí)時(shí),自自動(dòng)釋釋放PGA所占占的內(nèi)內(nèi)存。。65PGA的組組成排序區(qū)區(qū)會(huì)話(huà)區(qū)區(qū)游標(biāo)區(qū)區(qū)堆棧區(qū)區(qū)PGA服務(wù)器進(jìn)程66排序區(qū)區(qū)執(zhí)行orderby、、groupby等包包含排排序操操作的的SQL語(yǔ)語(yǔ)句時(shí)時(shí)所產(chǎn)產(chǎn)生的的臨時(shí)時(shí)數(shù)據(jù)據(jù).Oracle將將準(zhǔn)備備排序序的數(shù)數(shù)據(jù)先先臨時(shí)時(shí)存儲(chǔ)儲(chǔ)到排排序區(qū)區(qū)中,,并在在排序序區(qū)中中排序序,然然后將將排序序好的的數(shù)據(jù)據(jù)返回回給用用戶(hù).67會(huì)話(huà)區(qū)區(qū)保存會(huì)會(huì)話(huà)所所具有有的權(quán)權(quán)限、、角色色、性性能統(tǒng)統(tǒng)計(jì)信信息.68游標(biāo)區(qū)區(qū)當(dāng)運(yùn)行行帶有有游標(biāo)標(biāo)(course)的PL/SQL語(yǔ)語(yǔ)句時(shí)時(shí),Oracle會(huì)會(huì)在共共享池池中為為該語(yǔ)語(yǔ)句分分配上上下文文(Context),,游標(biāo)標(biāo)實(shí)際際上是是指向向該上上下文文的指指針。。69堆棧區(qū)區(qū)保存會(huì)會(huì)話(huà)中中的綁綁定變變量、、會(huì)話(huà)話(huà)變量量以及及SQL語(yǔ)語(yǔ)句運(yùn)運(yùn)行時(shí)時(shí)的內(nèi)內(nèi)存結(jié)結(jié)構(gòu)信信息。。例如:select*fromempwhereemp=:a;:a就是綁綁定變量,提示用戶(hù)戶(hù)輸入.在等待用戶(hù)戶(hù)輸入時(shí),,先將該變變量存入堆堆棧,以便便可以同時(shí)時(shí)運(yùn)行其他他語(yǔ)句.70進(jìn)程結(jié)構(gòu)進(jìn)程時(shí)操作作系統(tǒng)中的的一個(gè)概念念,是一個(gè)個(gè)可以獨(dú)立立調(diào)用的活活動(dòng),用于于完成指定定的任務(wù)。。進(jìn)程與程序序的區(qū)別是是:進(jìn)程是動(dòng)態(tài)態(tài)創(chuàng)建的,,完成后銷(xiāo)銷(xiāo)毀;程序序是靜態(tài)的的實(shí)體,可可以復(fù)制、、編輯。進(jìn)程強(qiáng)調(diào)執(zhí)執(zhí)行過(guò)程,,程序僅僅僅是指令的的有序集合合。進(jìn)程在內(nèi)存存中,程序序在外存中中。71進(jìn)程種類(lèi)Oracle包括用用戶(hù)進(jìn)程和和Oracle進(jìn)程程兩類(lèi):用戶(hù)進(jìn)進(jìn)程服務(wù)器進(jìn)程程后臺(tái)進(jìn)進(jìn)程O(píng)racle進(jìn)程72用戶(hù)進(jìn)程當(dāng)用戶(hù)運(yùn)行行一個(gè)應(yīng)用用程序時(shí),,就建立一一個(gè)用戶(hù)進(jìn)進(jìn)程。73服務(wù)器進(jìn)程程服務(wù)器進(jìn)程程:處理用戶(hù)進(jìn)進(jìn)程的請(qǐng)求求。處理過(guò)程:分析SQL命令并生生成執(zhí)行方方案。從數(shù)據(jù)緩沖沖存儲(chǔ)區(qū)中中讀取數(shù)據(jù)據(jù)。將執(zhí)行結(jié)果果返回給用用戶(hù)。74后臺(tái)進(jìn)程后臺(tái)進(jìn)程為所有數(shù)據(jù)據(jù)庫(kù)用戶(hù)異異步完成各各種任務(wù)。。主要的后臺(tái)進(jìn)程有

DBWR數(shù)據(jù)庫(kù)寫(xiě)進(jìn)程LGWR日志寫(xiě)進(jìn)程CKPT檢查點(diǎn)寫(xiě)進(jìn)程SMON系統(tǒng)監(jiān)控進(jìn)程PMON進(jìn)程監(jiān)控進(jìn)程ARCH歸檔進(jìn)程RECO恢復(fù)進(jìn)程LCKn封鎖進(jìn)程75DBWR(數(shù)據(jù)寫(xiě))DBWR(DataBaseWriter)將數(shù)據(jù)緩沖沖區(qū)中所有有修改過(guò)的的緩沖塊數(shù)數(shù)據(jù)寫(xiě)到數(shù)數(shù)據(jù)文件中中,并使用用LRU算算法來(lái)保持持緩沖區(qū)中中的數(shù)據(jù)塊塊為最近經(jīng)經(jīng)常使用的的,以減少少I(mǎi)/O次次數(shù)。該進(jìn)程在啟啟動(dòng)實(shí)例時(shí)時(shí)自動(dòng)啟動(dòng)動(dòng)。76LGWR(日志寫(xiě))LGWR((LogWriter)將日志緩沖沖區(qū)中的所所有記錄項(xiàng)項(xiàng)寫(xiě)到日志志文件中。。該進(jìn)程在啟啟動(dòng)實(shí)例時(shí)時(shí)自動(dòng)啟動(dòng)動(dòng)。77啟動(dòng)LGWR進(jìn)行寫(xiě)寫(xiě)操作的條條件用戶(hù)進(jìn)程提提交一個(gè)事事務(wù)(Commit)日志緩沖區(qū)區(qū)達(dá)到1/3范圍DBWR對(duì)對(duì)一個(gè)檢查查點(diǎn)需要清清除緩沖塊塊出現(xiàn)超時(shí)((3秒鐘內(nèi)內(nèi)未活動(dòng),,則進(jìn)行一一次寫(xiě)操作作。)78ARCH(歸檔進(jìn)程程)ARCH(Archiver)在日志文件件組出現(xiàn)切切換時(shí),將將舊日志文文件的內(nèi)容容拷貝到脫脫機(jī)存儲(chǔ)介介質(zhì)上,出出現(xiàn)介質(zhì)失失敗時(shí)用于于恢復(fù)數(shù)據(jù)據(jù)。ARCH存儲(chǔ)介質(zhì)79其他后臺(tái)進(jìn)進(jìn)程SMON((SystemMonitor,系統(tǒng)監(jiān)控進(jìn)進(jìn)程)負(fù)責(zé)完成自自動(dòng)實(shí)例恢恢復(fù)。該進(jìn)進(jìn)程在啟動(dòng)動(dòng)實(shí)例時(shí)自自動(dòng)啟動(dòng)。。PMON((ProcessMonitor,進(jìn)程監(jiān)控進(jìn)進(jìn)程)撤消異常中中斷的用戶(hù)戶(hù)進(jìn)程,并并釋放該進(jìn)進(jìn)程已獲得得的系統(tǒng)資資源或鎖。。80RECO((Recover,恢復(fù)進(jìn)程)在分布式操操作的情況況下,恢復(fù)復(fù)一個(gè)事務(wù)務(wù)的失敗。。LCKn((Lock,鎖進(jìn)程)在并行服務(wù)務(wù)器系統(tǒng)間間加鎖,最最多可加10個(gè)鎖,,分別為L(zhǎng)CK0,LCK1,,LCK9。其他后臺(tái)進(jìn)進(jìn)程81體系結(jié)構(gòu)的的示例處理SQL語(yǔ)句的三三個(gè)階段語(yǔ)法分析執(zhí)行返回指令Server共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGAUserUserUserSQL>SELECTenameFROMemp;Server共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGAUserUserUserSMITHALLENWARDServer共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA82體系結(jié)構(gòu)的的示例SELECT操作SQL>SELECTsalFROMempWHEREjob=‘‘CLERK’’;Server共享池?cái)?shù)據(jù)緩沖區(qū)SGAUserUserUserB1B2EMPTableBlock1Block283體系結(jié)構(gòu)的的示例UPDATE操作為了支持讀讀一致性,,恢復(fù)和回回滾,所有有修改操作作需要回滾滾段。修改改操作執(zhí)行行:將數(shù)據(jù)塊送送到數(shù)據(jù)緩緩沖區(qū)將回滾塊送送到數(shù)據(jù)緩緩沖區(qū)在修改行上上設(shè)置行鎖鎖保存回滾數(shù)數(shù)據(jù)到回滾滾段塊將修改寫(xiě)到到數(shù)據(jù)塊84體系結(jié)構(gòu)的的示例SQL>SELECTsalFROMempWHEREjob=‘‘CLERK’’;Server1UserUserUser1Server2UserUserUser2共享池?cái)?shù)據(jù)緩沖區(qū)SGAB1B2R2R1EMPTableBlock1Block2RB01R1R2DataFile1DataFile2SQL>UPDATEempSETsal=sal*1.1WHEREjob=‘‘CLERK’’;UPDATE操作85Oracle10g體系結(jié)結(jié)構(gòu)--2.4數(shù)據(jù)字字典86數(shù)據(jù)字典數(shù)據(jù)字典是是Oracle數(shù)據(jù)據(jù)庫(kù)的核心心組件,它它由一系列列只讀的數(shù)數(shù)據(jù)字典表表和數(shù)據(jù)字字典視圖組組成.數(shù)據(jù)字典中中記錄了數(shù)數(shù)據(jù)庫(kù)的系系統(tǒng)信息、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論