oracle數(shù)據(jù)庫(kù)-管理-體系結(jié)構(gòu)課件_第1頁(yè)
oracle數(shù)據(jù)庫(kù)-管理-體系結(jié)構(gòu)課件_第2頁(yè)
oracle數(shù)據(jù)庫(kù)-管理-體系結(jié)構(gòu)課件_第3頁(yè)
oracle數(shù)據(jù)庫(kù)-管理-體系結(jié)構(gòu)課件_第4頁(yè)
oracle數(shù)據(jù)庫(kù)-管理-體系結(jié)構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩103頁(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)介

1oracle管理科學(xué)數(shù)據(jù)庫(kù)技術(shù)培訓(xùn)1oracle管理科學(xué)數(shù)據(jù)庫(kù)技術(shù)培訓(xùn)2oracle數(shù)據(jù)庫(kù)的特點(diǎn)Oracle是oracle公司出品的十分優(yōu)秀的DBMS。目前,中國(guó)電信行業(yè)使用的數(shù)據(jù)庫(kù)系統(tǒng)基本上全部是oracle(不是windows下的)。其市場(chǎng)占有率為32.6%。如果實(shí)現(xiàn)的是高端企業(yè)應(yīng)用,需要處理的并發(fā)數(shù)據(jù)量很大,同時(shí)對(duì)數(shù)據(jù)庫(kù)的可靠性、安全性和可擴(kuò)展性又很高的要求,那么oracle是很好的選擇。2oracle數(shù)據(jù)庫(kù)的特點(diǎn)Oracle是oracle公司出品3oracle數(shù)據(jù)庫(kù)的特點(diǎn)支持大數(shù)據(jù)庫(kù)、多用戶(hù)的高性能的事務(wù)處理ORACLE遵守?cái)?shù)據(jù)存取語(yǔ)言、操作系統(tǒng)、用戶(hù)接口和通訊協(xié)議的工業(yè)標(biāo)準(zhǔn)。實(shí)施安全性控制和完整性控制支持分布式數(shù)據(jù)庫(kù)和分布處理。分布式系統(tǒng)像集中式數(shù)據(jù)庫(kù)具有一樣的透明性和數(shù)據(jù)一致性。具有可移植性、可兼容性和連接性。Oracle10g支持網(wǎng)格計(jì)算3oracle數(shù)據(jù)庫(kù)的特點(diǎn)支持大數(shù)據(jù)庫(kù)、多用戶(hù)的高性能的事務(wù)4第一章ORACLE的體系結(jié)構(gòu)Oracle的物理結(jié)構(gòu)Oracle的系統(tǒng)全局區(qū)Oracle的進(jìn)程4第一章ORACLE的體系結(jié)構(gòu)5ORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)概述物理結(jié)構(gòu)

數(shù)據(jù)文件、日志文件、控制文件、參數(shù)文件系統(tǒng)全局區(qū)(SystemGlobalArea)

共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)進(jìn)程

用戶(hù)進(jìn)程、服務(wù)器進(jìn)程、后臺(tái)進(jìn)程5ORACLE的體系結(jié)構(gòu)體系結(jié)構(gòu)概述物理結(jié)構(gòu)6共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示6共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控7數(shù)據(jù)文件日志文件控制文件參數(shù)文件ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)7數(shù)據(jù)文件ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)8

數(shù)據(jù)文件(DataFile)是物理存儲(chǔ)ORACLE數(shù)據(jù)庫(kù)數(shù)據(jù)的文件。其特點(diǎn)如下:每一個(gè)數(shù)據(jù)文件只與一個(gè)數(shù)據(jù)庫(kù)相聯(lián)系。一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件。一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)8數(shù)據(jù)文件(DataFile)是物理存儲(chǔ)ORACL9

日志文件(LogFile)記錄所有對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的修改,以備恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下:每一個(gè)數(shù)據(jù)庫(kù)至少包含兩個(gè)日志文件組。日志文件組以循環(huán)方式進(jìn)行寫(xiě)操作。每一個(gè)日志文件成員對(duì)應(yīng)一個(gè)物理文件。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)9日志文件(LogFile)記錄所有對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的10

日志開(kāi)關(guān)(LogSwitch)是為實(shí)現(xiàn)日志文件組的循環(huán)使用而設(shè)置的。出現(xiàn)日志開(kāi)關(guān)的情況如下:當(dāng)一個(gè)日志文件組被填滿(mǎn)時(shí)關(guān)閉數(shù)據(jù)庫(kù)時(shí)

DBA手動(dòng)轉(zhuǎn)移日志開(kāi)關(guān)ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)10日志開(kāi)關(guān)(LogSwitch)是為實(shí)現(xiàn)日志文件11日志文件寫(xiě)操作圖示LogFile1LogFile2Group1Group2Member2.1Member1.1ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)11日志文件寫(xiě)操作圖示LogFile1LogFile12

鏡像日志文件是為防止日志文件的丟失,在不同磁盤(pán)上同時(shí)維護(hù)兩個(gè)或多個(gè)聯(lián)機(jī)日志文件的副本。其特點(diǎn)如下:每個(gè)日志文件組至少包含兩個(gè)日志文件成員。每組的成員數(shù)目相同。同組的所有成員同時(shí)被修改。同組的成員大小相同,不同組的成員大小可不同。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)12鏡像日志文件是為防止日志文件的丟失,在不同磁盤(pán)上13鏡像日志文件圖示Group1Group2LogFile1LogFile2Member2.1Member1.1LogFile3LogFile4Member2.2Member1.2Disk1Disk2ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)13鏡像日志文件圖示Group1Group2LogFi14共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGADBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示14共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGADBWRARCHCKPT15

控制文件(ControlFile)是一個(gè)較小的二進(jìn)制文件,用于描述數(shù)據(jù)庫(kù)物理結(jié)構(gòu)。描述信息如下:數(shù)據(jù)庫(kù)建立的日期。數(shù)據(jù)庫(kù)名。數(shù)據(jù)庫(kù)中所有數(shù)據(jù)文件和日志文件的文件名及路徑?;謴?fù)數(shù)據(jù)庫(kù)時(shí)所需的同步信息。要點(diǎn)注意:在打開(kāi)和存取數(shù)據(jù)庫(kù)時(shí)都要訪(fǎng)問(wèn)該文件。鏡像控制文件。記錄控制文件名及路徑的參數(shù)為:

CONTROL_FILESORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)15控制文件(ControlFile)是一個(gè)較小的16

參數(shù)文件(PFILE)和服務(wù)器端參數(shù)文件(SPFILE)oracle8i以前的版本都是使用普通文本形式的本地初始化參數(shù)文件,initSID.ora。自oracle9i開(kāi)始使用服務(wù)器端參數(shù)文件,SPFILE是二進(jìn)制格式的,默認(rèn)名為SPFILE<SID>.ORA。盡管能夠打開(kāi)并編輯器中的內(nèi)容,但是任何用戶(hù)都不應(yīng)該手工修改其中的內(nèi)容,否則實(shí)例將無(wú)法啟動(dòng)。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)16參數(shù)文件(PFILE)和服務(wù)器端參數(shù)文件(SPF17參數(shù)文件的作用:確定存儲(chǔ)結(jié)構(gòu)的大小。設(shè)置數(shù)據(jù)庫(kù)的全部缺省值。設(shè)置數(shù)據(jù)庫(kù)的范圍。設(shè)置數(shù)據(jù)庫(kù)的各種物理屬性。優(yōu)化數(shù)據(jù)庫(kù)性能。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)17參數(shù)文件的作用:ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)18創(chuàng)建服務(wù)器端初始化參數(shù)文件

SPFILE在創(chuàng)建時(shí)必須基于一個(gè)傳統(tǒng)的文本初始化參數(shù)文件,而且必須在啟動(dòng)實(shí)例之前完成創(chuàng)建工作。Sql>createSPFILE=‘D:\ORACLE\…’

FROMPFILE=‘D:\ORACLE\…\TEMPFILE\…’; PFILE子句是必需的,SPFILE子句可以省略,則SPFILE存貯在缺省位置<ORACLE_HOME>\DATABASE\下。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)18創(chuàng)建服務(wù)器端初始化參數(shù)文件ORACLE的體系結(jié)構(gòu)19ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)查看服務(wù)器端參數(shù)文件

在SQLPLUS中使用SHOWPARAMETERS命令 查詢(xún)V$PARAMETER或V$PARAMETER2動(dòng)態(tài)性能視圖,V$PARAMETER2的格式更加簡(jiǎn)介。查詢(xún)V$SPPARAMETER動(dòng)態(tài)性能視圖導(dǎo)出服務(wù)器端參數(shù)文件

SQL>CREATEPFILE=‘D:\…’FROMSPFILE=‘…’19ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)查看服務(wù)器端參數(shù)文20ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)修改服務(wù)器端參數(shù)文件

在9i中直接手工修改本地參數(shù)化文件是沒(méi)用的,不會(huì)改變數(shù)據(jù)庫(kù)的設(shè)置。

利用ALTERSYSTEMSETparameter=value語(yǔ)句可以在數(shù)據(jù)庫(kù)運(yùn)行時(shí)修改初始化參數(shù)的值。 在SET子句中可以使用SCOPE選項(xiàng)來(lái)設(shè)置影響范圍,所謂影響范圍就是ALTERSYSTEM語(yǔ)句對(duì)參數(shù)的修改是僅對(duì)當(dāng)前實(shí)例有效(記錄在內(nèi)存中),還是永久有效(記錄在SPFILE中)。

20ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)修改服務(wù)器端參數(shù)文21ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)SCOPE選項(xiàng)有三種選擇:SCOPE=SPFILE對(duì)參數(shù)的修改僅記錄在SPFILE,改選項(xiàng)同時(shí)適用動(dòng)態(tài)初始化參數(shù)和靜態(tài)初始化參數(shù)。修改后的參數(shù)在下次啟動(dòng)后生效SCOPE=MEMORY對(duì)參數(shù)的修改僅記錄在內(nèi)存中,更改立即生效,僅對(duì)本次實(shí)例有效。對(duì)靜態(tài)參數(shù),不能使用這個(gè)選項(xiàng)值。SCOPE=BOTH對(duì)參數(shù)的修改同時(shí)記錄在內(nèi)存和SPFILE中,立即生效,下次啟動(dòng)后使用修改后的參數(shù)。對(duì)于靜態(tài)參數(shù),不能使用這個(gè)選項(xiàng)。21ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)SCOPE選項(xiàng)有三22ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)主要的初始化參數(shù)

全局?jǐn)?shù)據(jù)庫(kù)名和SID

DB_NAME本地?cái)?shù)據(jù)庫(kù)標(biāo)識(shí),在只有一個(gè)實(shí)例的情況下,本地?cái)?shù)據(jù)庫(kù)標(biāo)識(shí)和實(shí)例標(biāo)識(shí)SID相同。 DB_DOMAIN網(wǎng)絡(luò)域名 則全局名GLOBAL_NAME為DB_NAME.DB_DOMAIN

控制文件參數(shù)

control_files='d:\oracle\oradata\test\CONTROL01.CTL','d:\oracle\oradata\test\CONTROL02.CTL','d:\oracle\oradata\test\CONTROL03.CTL'22ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)主要的初始化參數(shù)23ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu) 數(shù)據(jù)塊參數(shù)

db_block_size,數(shù)據(jù)庫(kù)建立后不能修改。一般是操作系統(tǒng)塊的整數(shù)倍。對(duì)I/O密集的操作,使用雙倍大小的數(shù)據(jù)塊能提高40%左右的I/O性能,但是所這塊的增大,數(shù)據(jù)庫(kù)對(duì)內(nèi)存SGA的需求也增大,會(huì)對(duì)系統(tǒng)性能產(chǎn)生負(fù)面影響

db_cache_size指定SGA區(qū)數(shù)據(jù)庫(kù)告訴緩沖區(qū)的大小。Oracle8i中是使用db_block_buffers來(lái)決定的。 撤銷(xiāo)空間的管理方式undo_management='AUTO‘\’MANUAL’undo_tablespace='UNDOTBS1'23ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu) 數(shù)據(jù)塊參數(shù)24共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示24共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件25共享池?cái)?shù)據(jù)庫(kù)緩沖區(qū)日志緩沖區(qū)ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)25共享池ORACLE的體系結(jié)構(gòu)26實(shí)例(INSTANCE)是存取和控制數(shù)據(jù)庫(kù)的軟件機(jī)制,它由系統(tǒng)全局區(qū)(SystemGlobalArea,簡(jiǎn)稱(chēng)SGA)和后臺(tái)進(jìn)程組成。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)26實(shí)例(INSTANCE)ORACLE的體系結(jié)構(gòu)27SGA是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖存儲(chǔ)區(qū),用于存放數(shù)據(jù)庫(kù)數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的管理和操作。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)27SGA是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖存儲(chǔ)區(qū),28ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)SGA區(qū)的初始化參數(shù)

DB_CACHE_SIZE數(shù)據(jù)庫(kù)緩存的大小

LOG_BUFFER重做日志緩存的大小

SHARED_POOL_SIZE共享池的大小

LARGE_POOL_SIZE大型池的大小為了優(yōu)化系統(tǒng)性能,SGA區(qū)最好全部位于物理內(nèi)存中。如果超過(guò)了系統(tǒng)物理內(nèi)存的大小,則不得不使用虛擬內(nèi)存來(lái)補(bǔ)償,部分SGA區(qū)必須由操作系統(tǒng)進(jìn)行換頁(yè)操作,將在很大程度上降低系統(tǒng)性能。共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA28ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)SGA區(qū)的初始化參29共享池(SharedPool)由共享SQL區(qū)和數(shù)據(jù)字典區(qū)組成。參數(shù)SHARED_POOL_SIZE確定共享池的大小。共享SQL區(qū)包括

SQL或PL/SQL語(yǔ)句的文本

SQL或PL/SQL語(yǔ)句的語(yǔ)法分析形式

SQL或PL/SQL語(yǔ)句的執(zhí)行方案數(shù)據(jù)字典區(qū)用于存放數(shù)據(jù)字典信息行。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)29共享池(SharedPool)由共享SQL區(qū)和數(shù)據(jù)字典30數(shù)據(jù)緩沖存儲(chǔ)區(qū)(DatabaseBufferCache)用于存儲(chǔ)從數(shù)據(jù)文件中讀的數(shù)據(jù)的備份。數(shù)據(jù)緩沖區(qū)數(shù)據(jù)文件DB_BLOCK_SIZE

確定數(shù)據(jù)塊的大小,一般為2K或4K,對(duì)于大數(shù)據(jù)塊的數(shù)據(jù)庫(kù),此參數(shù)值為物理塊的倍數(shù)。DB_CACHE_SIZE(oracle9i)DB_BLOCK_BUFFERS(oracle8i)確定數(shù)據(jù)塊的數(shù)目。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)30數(shù)據(jù)緩沖存儲(chǔ)區(qū)(DatabaseBufferCach31數(shù)據(jù)緩沖存儲(chǔ)區(qū)分為

臟列表包括被修改過(guò)但尚未寫(xiě)到數(shù)據(jù)文件的緩沖塊。

LRU(LeastRecentlyUsed)列表

包括空閑緩沖塊、正在存取的緩沖塊、已被修改但尚未移到臟列表的緩沖塊。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)31數(shù)據(jù)緩沖存儲(chǔ)區(qū)分為ORACLE的體系結(jié)構(gòu)系統(tǒng)全局32日志緩沖存儲(chǔ)區(qū)(LogBuffer)以記錄項(xiàng)的形式備份數(shù)據(jù)庫(kù)緩沖區(qū)中被修改的緩沖塊,這些記錄將被寫(xiě)到日志文件中。LOG_BUFFER

確定日志緩沖區(qū)的大小。日志緩沖區(qū)日志文件ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)32日志緩沖存儲(chǔ)區(qū)(LogBuffer)以記錄項(xiàng)的形式備份33共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示33共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件34用戶(hù)進(jìn)程服務(wù)器進(jìn)程后臺(tái)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)進(jìn)程34用戶(hù)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)進(jìn)程35

ORACLE實(shí)例分為單進(jìn)程實(shí)例和多進(jìn)程實(shí)例兩種。

SINGLE_PROCESS單進(jìn)程/多進(jìn)程實(shí)例的轉(zhuǎn)換。ORACLE的體系結(jié)構(gòu)進(jìn)程35ORACLE實(shí)例分為單進(jìn)程實(shí)例和多進(jìn)程實(shí)36單進(jìn)程/單用戶(hù)一個(gè)進(jìn)程執(zhí)行全部ORACLE代碼。SGAORACLEServer數(shù)據(jù)庫(kù)應(yīng)用ORACLE的體系結(jié)構(gòu)進(jìn)程36單進(jìn)程/單用戶(hù)SGAORACLEServerO37多進(jìn)程/多用戶(hù)使用多個(gè)進(jìn)程執(zhí)行ORACLE的不同代碼,對(duì)于每一個(gè)連接的用戶(hù)都有一個(gè)進(jìn)程。SGA服務(wù)器進(jìn)程用戶(hù)進(jìn)程后臺(tái)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)進(jìn)程37多進(jìn)程/多用戶(hù)SGA服務(wù)器進(jìn)程用戶(hù)進(jìn)程后臺(tái)進(jìn)程38用戶(hù)進(jìn)程當(dāng)用戶(hù)運(yùn)行一個(gè)應(yīng)用程序時(shí),就建立一個(gè)用戶(hù)進(jìn)程。ORACLE的體系結(jié)構(gòu)用戶(hù)進(jìn)程38用戶(hù)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)用戶(hù)進(jìn)程39服務(wù)器進(jìn)程處理用戶(hù)進(jìn)程的請(qǐng)求。處理過(guò)程分析SQL命令并生成執(zhí)行方案。從數(shù)據(jù)緩沖存儲(chǔ)區(qū)中讀取數(shù)據(jù)。將執(zhí)行結(jié)果返回給用戶(hù)。ORACLE的體系結(jié)構(gòu)服務(wù)器進(jìn)程39服務(wù)器進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)服務(wù)器進(jìn)程40后臺(tái)進(jìn)程為所有數(shù)據(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)程O(píng)RACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程40后臺(tái)進(jìn)程主要的后臺(tái)進(jìn)程有ORACLE的體系結(jié)構(gòu)后41ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程DBWR(DataBaseWriter)

將數(shù)據(jù)緩沖區(qū)中所有修改過(guò)的緩沖塊數(shù)據(jù)寫(xiě)到數(shù)據(jù)文件中,并使用LRU(Least-Recently-Used)算法來(lái)保持緩沖區(qū)中的數(shù)據(jù)塊為最近經(jīng)常使用的,以減少I(mǎi)/O次數(shù)。該進(jìn)程在啟動(dòng)實(shí)例時(shí)自動(dòng)啟動(dòng)41ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程DBWR(Data42DBWR進(jìn)行寫(xiě)操作的情況:臟列表達(dá)到最低限制。相當(dāng)于參數(shù)DB_BLOCK_WRITE_BATCH值的一半。一個(gè)進(jìn)程在LRU列表中掃描指定數(shù)目的緩沖塊,未找到空閑緩沖塊。參數(shù)DB_BLOCK_MAX_SCAN_CNT確定掃描數(shù)目。ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程42DBWR進(jìn)行寫(xiě)操作的情況:ORACLE的體系結(jié)構(gòu)43ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程出現(xiàn)超時(shí)3秒鐘內(nèi)該進(jìn)程未活動(dòng),則該進(jìn)程將在LRU列表中查找尚未查找的緩沖塊,這組緩沖塊的數(shù)目相當(dāng)于參數(shù)DB_BLOCK_WRITE_BATCH值的2倍。出現(xiàn)檢查點(diǎn)。43ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程出現(xiàn)超時(shí)44LGWR(LogWriter)

將日志緩沖區(qū)中的所有記錄項(xiàng)寫(xiě)到日志文件中。該進(jìn)程在啟動(dòng)實(shí)例時(shí)自動(dòng)啟動(dòng)。ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程44LGWR(LogWriter)ORACLE的體系結(jié)構(gòu)45ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程LGWR進(jìn)行寫(xiě)操作的情況:用戶(hù)進(jìn)程提交一個(gè)事務(wù)(Commit)

日志緩沖區(qū)達(dá)到1/3范圍

DBWR對(duì)一個(gè)檢查點(diǎn)需要清除緩沖塊出現(xiàn)超時(shí)(3秒鐘內(nèi)未活動(dòng),則進(jìn)行一次寫(xiě)操作。)45ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程LGWR進(jìn)行寫(xiě)操作46ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程檢查點(diǎn)(Checkpoint):在檢查點(diǎn)出現(xiàn)期間,DBWR進(jìn)程將數(shù)據(jù)緩沖區(qū)中的所有臟緩沖塊寫(xiě)到數(shù)據(jù)文件中,LGWR進(jìn)程將日志緩沖區(qū)中的所有記錄項(xiàng)寫(xiě)到日志文件中,以確保上一個(gè)檢查點(diǎn)至今修改過(guò)的所有數(shù)據(jù)塊都被寫(xiě)到磁盤(pán)上。46ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程檢查點(diǎn)(Check47檢查點(diǎn):預(yù)定數(shù)目的記錄項(xiàng)被填滿(mǎn)。參數(shù)LOG_CHECKPOINT_INTERVAL確定了預(yù)定數(shù)目。設(shè)置指定的秒數(shù)。 參數(shù)LOG_CHECKPOINT_TIMEOUT確定了間隔秒數(shù)。每個(gè)日志開(kāi)關(guān)處關(guān)閉實(shí)例時(shí)

DBA手動(dòng)操作。ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程47檢查點(diǎn):ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程48CKPT(Checkpointer)

在控制文件中記錄檢查點(diǎn)。參CHECKPOINT_PROCESS確定了檢查點(diǎn)的啟動(dòng)/不啟動(dòng)狀態(tài)。若CKPT進(jìn)程不啟動(dòng),則該進(jìn)程的工作將由LGWR進(jìn)程代勞。(如果數(shù)據(jù)庫(kù)的數(shù)據(jù)文件過(guò)多,這樣操作會(huì)降低系統(tǒng)性能。)

oracle9i中已經(jīng)廢棄了這個(gè)參數(shù),在實(shí)例啟動(dòng)時(shí)將會(huì)自動(dòng)啟動(dòng)CKPT進(jìn)程。如果仍然在參數(shù)文件中設(shè)置這個(gè)參數(shù),將會(huì)導(dǎo)致實(shí)例啟動(dòng)失敗。ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程48CKPT(Checkpointer)ORACLE的體系結(jié)49ARCH(Archiver)歸檔進(jìn)程在日志文件組出現(xiàn)切換時(shí),將舊日志文件的內(nèi)容拷貝到脫機(jī)存儲(chǔ)介質(zhì)上,出現(xiàn)介質(zhì)失敗時(shí)用于恢復(fù)數(shù)據(jù)。

LOG_ARCHIVE_START確定了該進(jìn)程的啟動(dòng)/不啟動(dòng)狀態(tài)。ARCH存儲(chǔ)介質(zhì)ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程49ARCH(Archiver)歸檔進(jìn)程ARCH存儲(chǔ)介質(zhì)OR50ARCH(Archiver)LOG_ARCHIVE_DEST當(dāng)數(shù)據(jù)庫(kù)在歸檔模式下操作時(shí),該參數(shù)確定了日志文件的歸檔目標(biāo)。

LOG_ARCHIVE_FORMAT當(dāng)數(shù)據(jù)庫(kù)在歸檔模式下操作時(shí),該參數(shù)確定了歸檔日志文件的缺省文件名格式。ARCH存儲(chǔ)介質(zhì)ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程50ARCH(Archiver)ARCH存儲(chǔ)介質(zhì)ORACLE51ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程SMON(SystemMonitor)系統(tǒng)監(jiān)視進(jìn)程負(fù)責(zé)完成自動(dòng)實(shí)例恢復(fù)。該進(jìn)程在啟動(dòng)實(shí)例時(shí)自動(dòng)啟動(dòng)。PMON(ProcessMonitor)進(jìn)程監(jiān)視進(jìn)程撤消異常中斷的用戶(hù)進(jìn)程,并釋放該進(jìn)程已獲得的系統(tǒng)資源或鎖。51ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程SMON(Syst52ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程RECO(Recover)恢復(fù)進(jìn)程在分布式操作的情況下,恢復(fù)一個(gè)事務(wù)的失敗。LCKn(Lock)鎖進(jìn)程在并行服務(wù)器系統(tǒng)間加鎖,最多可加10個(gè)鎖,分別為L(zhǎng)CK0,LCK1,,LCK9。52ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程RECO(Reco53共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

總結(jié)53共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件謝謝謝謝55oracle管理科學(xué)數(shù)據(jù)庫(kù)技術(shù)培訓(xùn)1oracle管理科學(xué)數(shù)據(jù)庫(kù)技術(shù)培訓(xùn)56oracle數(shù)據(jù)庫(kù)的特點(diǎn)Oracle是oracle公司出品的十分優(yōu)秀的DBMS。目前,中國(guó)電信行業(yè)使用的數(shù)據(jù)庫(kù)系統(tǒng)基本上全部是oracle(不是windows下的)。其市場(chǎng)占有率為32.6%。如果實(shí)現(xiàn)的是高端企業(yè)應(yīng)用,需要處理的并發(fā)數(shù)據(jù)量很大,同時(shí)對(duì)數(shù)據(jù)庫(kù)的可靠性、安全性和可擴(kuò)展性又很高的要求,那么oracle是很好的選擇。2oracle數(shù)據(jù)庫(kù)的特點(diǎn)Oracle是oracle公司出品57oracle數(shù)據(jù)庫(kù)的特點(diǎn)支持大數(shù)據(jù)庫(kù)、多用戶(hù)的高性能的事務(wù)處理ORACLE遵守?cái)?shù)據(jù)存取語(yǔ)言、操作系統(tǒng)、用戶(hù)接口和通訊協(xié)議的工業(yè)標(biāo)準(zhǔn)。實(shí)施安全性控制和完整性控制支持分布式數(shù)據(jù)庫(kù)和分布處理。分布式系統(tǒng)像集中式數(shù)據(jù)庫(kù)具有一樣的透明性和數(shù)據(jù)一致性。具有可移植性、可兼容性和連接性。Oracle10g支持網(wǎng)格計(jì)算3oracle數(shù)據(jù)庫(kù)的特點(diǎn)支持大數(shù)據(jù)庫(kù)、多用戶(hù)的高性能的事務(wù)58第一章ORACLE的體系結(jié)構(gòu)Oracle的物理結(jié)構(gòu)Oracle的系統(tǒng)全局區(qū)Oracle的進(jìn)程4第一章ORACLE的體系結(jié)構(gòu)59ORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)概述物理結(jié)構(gòu)

數(shù)據(jù)文件、日志文件、控制文件、參數(shù)文件系統(tǒng)全局區(qū)(SystemGlobalArea)

共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)進(jìn)程

用戶(hù)進(jìn)程、服務(wù)器進(jìn)程、后臺(tái)進(jìn)程5ORACLE的體系結(jié)構(gòu)體系結(jié)構(gòu)概述物理結(jié)構(gòu)60共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示6共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控61數(shù)據(jù)文件日志文件控制文件參數(shù)文件ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)7數(shù)據(jù)文件ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)62

數(shù)據(jù)文件(DataFile)是物理存儲(chǔ)ORACLE數(shù)據(jù)庫(kù)數(shù)據(jù)的文件。其特點(diǎn)如下:每一個(gè)數(shù)據(jù)文件只與一個(gè)數(shù)據(jù)庫(kù)相聯(lián)系。一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件。一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)8數(shù)據(jù)文件(DataFile)是物理存儲(chǔ)ORACL63

日志文件(LogFile)記錄所有對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的修改,以備恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下:每一個(gè)數(shù)據(jù)庫(kù)至少包含兩個(gè)日志文件組。日志文件組以循環(huán)方式進(jìn)行寫(xiě)操作。每一個(gè)日志文件成員對(duì)應(yīng)一個(gè)物理文件。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)9日志文件(LogFile)記錄所有對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的64

日志開(kāi)關(guān)(LogSwitch)是為實(shí)現(xiàn)日志文件組的循環(huán)使用而設(shè)置的。出現(xiàn)日志開(kāi)關(guān)的情況如下:當(dāng)一個(gè)日志文件組被填滿(mǎn)時(shí)關(guān)閉數(shù)據(jù)庫(kù)時(shí)

DBA手動(dòng)轉(zhuǎn)移日志開(kāi)關(guān)ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)10日志開(kāi)關(guān)(LogSwitch)是為實(shí)現(xiàn)日志文件65日志文件寫(xiě)操作圖示LogFile1LogFile2Group1Group2Member2.1Member1.1ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)11日志文件寫(xiě)操作圖示LogFile1LogFile66

鏡像日志文件是為防止日志文件的丟失,在不同磁盤(pán)上同時(shí)維護(hù)兩個(gè)或多個(gè)聯(lián)機(jī)日志文件的副本。其特點(diǎn)如下:每個(gè)日志文件組至少包含兩個(gè)日志文件成員。每組的成員數(shù)目相同。同組的所有成員同時(shí)被修改。同組的成員大小相同,不同組的成員大小可不同。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)12鏡像日志文件是為防止日志文件的丟失,在不同磁盤(pán)上67鏡像日志文件圖示Group1Group2LogFile1LogFile2Member2.1Member1.1LogFile3LogFile4Member2.2Member1.2Disk1Disk2ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)13鏡像日志文件圖示Group1Group2LogFi68共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGADBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示14共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGADBWRARCHCKPT69

控制文件(ControlFile)是一個(gè)較小的二進(jìn)制文件,用于描述數(shù)據(jù)庫(kù)物理結(jié)構(gòu)。描述信息如下:數(shù)據(jù)庫(kù)建立的日期。數(shù)據(jù)庫(kù)名。數(shù)據(jù)庫(kù)中所有數(shù)據(jù)文件和日志文件的文件名及路徑?;謴?fù)數(shù)據(jù)庫(kù)時(shí)所需的同步信息。要點(diǎn)注意:在打開(kāi)和存取數(shù)據(jù)庫(kù)時(shí)都要訪(fǎng)問(wèn)該文件。鏡像控制文件。記錄控制文件名及路徑的參數(shù)為:

CONTROL_FILESORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)15控制文件(ControlFile)是一個(gè)較小的70

參數(shù)文件(PFILE)和服務(wù)器端參數(shù)文件(SPFILE)oracle8i以前的版本都是使用普通文本形式的本地初始化參數(shù)文件,initSID.ora。自oracle9i開(kāi)始使用服務(wù)器端參數(shù)文件,SPFILE是二進(jìn)制格式的,默認(rèn)名為SPFILE<SID>.ORA。盡管能夠打開(kāi)并編輯器中的內(nèi)容,但是任何用戶(hù)都不應(yīng)該手工修改其中的內(nèi)容,否則實(shí)例將無(wú)法啟動(dòng)。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)16參數(shù)文件(PFILE)和服務(wù)器端參數(shù)文件(SPF71參數(shù)文件的作用:確定存儲(chǔ)結(jié)構(gòu)的大小。設(shè)置數(shù)據(jù)庫(kù)的全部缺省值。設(shè)置數(shù)據(jù)庫(kù)的范圍。設(shè)置數(shù)據(jù)庫(kù)的各種物理屬性。優(yōu)化數(shù)據(jù)庫(kù)性能。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)17參數(shù)文件的作用:ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)72創(chuàng)建服務(wù)器端初始化參數(shù)文件

SPFILE在創(chuàng)建時(shí)必須基于一個(gè)傳統(tǒng)的文本初始化參數(shù)文件,而且必須在啟動(dòng)實(shí)例之前完成創(chuàng)建工作。Sql>createSPFILE=‘D:\ORACLE\…’

FROMPFILE=‘D:\ORACLE\…\TEMPFILE\…’; PFILE子句是必需的,SPFILE子句可以省略,則SPFILE存貯在缺省位置<ORACLE_HOME>\DATABASE\下。ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)18創(chuàng)建服務(wù)器端初始化參數(shù)文件ORACLE的體系結(jié)構(gòu)73ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)查看服務(wù)器端參數(shù)文件

在SQLPLUS中使用SHOWPARAMETERS命令 查詢(xún)V$PARAMETER或V$PARAMETER2動(dòng)態(tài)性能視圖,V$PARAMETER2的格式更加簡(jiǎn)介。查詢(xún)V$SPPARAMETER動(dòng)態(tài)性能視圖導(dǎo)出服務(wù)器端參數(shù)文件

SQL>CREATEPFILE=‘D:\…’FROMSPFILE=‘…’19ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)查看服務(wù)器端參數(shù)文74ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)修改服務(wù)器端參數(shù)文件

在9i中直接手工修改本地參數(shù)化文件是沒(méi)用的,不會(huì)改變數(shù)據(jù)庫(kù)的設(shè)置。

利用ALTERSYSTEMSETparameter=value語(yǔ)句可以在數(shù)據(jù)庫(kù)運(yùn)行時(shí)修改初始化參數(shù)的值。 在SET子句中可以使用SCOPE選項(xiàng)來(lái)設(shè)置影響范圍,所謂影響范圍就是ALTERSYSTEM語(yǔ)句對(duì)參數(shù)的修改是僅對(duì)當(dāng)前實(shí)例有效(記錄在內(nèi)存中),還是永久有效(記錄在SPFILE中)。

20ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)修改服務(wù)器端參數(shù)文75ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)SCOPE選項(xiàng)有三種選擇:SCOPE=SPFILE對(duì)參數(shù)的修改僅記錄在SPFILE,改選項(xiàng)同時(shí)適用動(dòng)態(tài)初始化參數(shù)和靜態(tài)初始化參數(shù)。修改后的參數(shù)在下次啟動(dòng)后生效SCOPE=MEMORY對(duì)參數(shù)的修改僅記錄在內(nèi)存中,更改立即生效,僅對(duì)本次實(shí)例有效。對(duì)靜態(tài)參數(shù),不能使用這個(gè)選項(xiàng)值。SCOPE=BOTH對(duì)參數(shù)的修改同時(shí)記錄在內(nèi)存和SPFILE中,立即生效,下次啟動(dòng)后使用修改后的參數(shù)。對(duì)于靜態(tài)參數(shù),不能使用這個(gè)選項(xiàng)。21ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)SCOPE選項(xiàng)有三76ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)主要的初始化參數(shù)

全局?jǐn)?shù)據(jù)庫(kù)名和SID

DB_NAME本地?cái)?shù)據(jù)庫(kù)標(biāo)識(shí),在只有一個(gè)實(shí)例的情況下,本地?cái)?shù)據(jù)庫(kù)標(biāo)識(shí)和實(shí)例標(biāo)識(shí)SID相同。 DB_DOMAIN網(wǎng)絡(luò)域名 則全局名GLOBAL_NAME為DB_NAME.DB_DOMAIN

控制文件參數(shù)

control_files='d:\oracle\oradata\test\CONTROL01.CTL','d:\oracle\oradata\test\CONTROL02.CTL','d:\oracle\oradata\test\CONTROL03.CTL'22ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu)主要的初始化參數(shù)77ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu) 數(shù)據(jù)塊參數(shù)

db_block_size,數(shù)據(jù)庫(kù)建立后不能修改。一般是操作系統(tǒng)塊的整數(shù)倍。對(duì)I/O密集的操作,使用雙倍大小的數(shù)據(jù)塊能提高40%左右的I/O性能,但是所這塊的增大,數(shù)據(jù)庫(kù)對(duì)內(nèi)存SGA的需求也增大,會(huì)對(duì)系統(tǒng)性能產(chǎn)生負(fù)面影響

db_cache_size指定SGA區(qū)數(shù)據(jù)庫(kù)告訴緩沖區(qū)的大小。Oracle8i中是使用db_block_buffers來(lái)決定的。 撤銷(xiāo)空間的管理方式undo_management='AUTO‘\’MANUAL’undo_tablespace='UNDOTBS1'23ORACLE的體系結(jié)構(gòu)物理結(jié)構(gòu) 數(shù)據(jù)塊參數(shù)78共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示24共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件79共享池?cái)?shù)據(jù)庫(kù)緩沖區(qū)日志緩沖區(qū)ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)25共享池ORACLE的體系結(jié)構(gòu)80實(shí)例(INSTANCE)是存取和控制數(shù)據(jù)庫(kù)的軟件機(jī)制,它由系統(tǒng)全局區(qū)(SystemGlobalArea,簡(jiǎn)稱(chēng)SGA)和后臺(tái)進(jìn)程組成。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)26實(shí)例(INSTANCE)ORACLE的體系結(jié)構(gòu)81SGA是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖存儲(chǔ)區(qū),用于存放數(shù)據(jù)庫(kù)數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的管理和操作。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)27SGA是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖存儲(chǔ)區(qū),82ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)SGA區(qū)的初始化參數(shù)

DB_CACHE_SIZE數(shù)據(jù)庫(kù)緩存的大小

LOG_BUFFER重做日志緩存的大小

SHARED_POOL_SIZE共享池的大小

LARGE_POOL_SIZE大型池的大小為了優(yōu)化系統(tǒng)性能,SGA區(qū)最好全部位于物理內(nèi)存中。如果超過(guò)了系統(tǒng)物理內(nèi)存的大小,則不得不使用虛擬內(nèi)存來(lái)補(bǔ)償,部分SGA區(qū)必須由操作系統(tǒng)進(jìn)行換頁(yè)操作,將在很大程度上降低系統(tǒng)性能。共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA28ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)SGA區(qū)的初始化參83共享池(SharedPool)由共享SQL區(qū)和數(shù)據(jù)字典區(qū)組成。參數(shù)SHARED_POOL_SIZE確定共享池的大小。共享SQL區(qū)包括

SQL或PL/SQL語(yǔ)句的文本

SQL或PL/SQL語(yǔ)句的語(yǔ)法分析形式

SQL或PL/SQL語(yǔ)句的執(zhí)行方案數(shù)據(jù)字典區(qū)用于存放數(shù)據(jù)字典信息行。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)29共享池(SharedPool)由共享SQL區(qū)和數(shù)據(jù)字典84數(shù)據(jù)緩沖存儲(chǔ)區(qū)(DatabaseBufferCache)用于存儲(chǔ)從數(shù)據(jù)文件中讀的數(shù)據(jù)的備份。數(shù)據(jù)緩沖區(qū)數(shù)據(jù)文件DB_BLOCK_SIZE

確定數(shù)據(jù)塊的大小,一般為2K或4K,對(duì)于大數(shù)據(jù)塊的數(shù)據(jù)庫(kù),此參數(shù)值為物理塊的倍數(shù)。DB_CACHE_SIZE(oracle9i)DB_BLOCK_BUFFERS(oracle8i)確定數(shù)據(jù)塊的數(shù)目。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)30數(shù)據(jù)緩沖存儲(chǔ)區(qū)(DatabaseBufferCach85數(shù)據(jù)緩沖存儲(chǔ)區(qū)分為

臟列表包括被修改過(guò)但尚未寫(xiě)到數(shù)據(jù)文件的緩沖塊。

LRU(LeastRecentlyUsed)列表

包括空閑緩沖塊、正在存取的緩沖塊、已被修改但尚未移到臟列表的緩沖塊。ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)31數(shù)據(jù)緩沖存儲(chǔ)區(qū)分為ORACLE的體系結(jié)構(gòu)系統(tǒng)全局86日志緩沖存儲(chǔ)區(qū)(LogBuffer)以記錄項(xiàng)的形式備份數(shù)據(jù)庫(kù)緩沖區(qū)中被修改的緩沖塊,這些記錄將被寫(xiě)到日志文件中。LOG_BUFFER

確定日志緩沖區(qū)的大小。日志緩沖區(qū)日志文件ORACLE的體系結(jié)構(gòu)系統(tǒng)全局區(qū)32日志緩沖存儲(chǔ)區(qū)(LogBuffer)以記錄項(xiàng)的形式備份87共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存儲(chǔ)介質(zhì)ServerUserUserUserORACLE的體系結(jié)構(gòu)

體系結(jié)構(gòu)圖示33共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SGA數(shù)據(jù)文件日志文件參數(shù)文件88用戶(hù)進(jìn)程服務(wù)器進(jìn)程后臺(tái)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)進(jìn)程34用戶(hù)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)進(jìn)程89

ORACLE實(shí)例分為單進(jìn)程實(shí)例和多進(jìn)程實(shí)例兩種。

SINGLE_PROCESS單進(jìn)程/多進(jìn)程實(shí)例的轉(zhuǎn)換。ORACLE的體系結(jié)構(gòu)進(jìn)程35ORACLE實(shí)例分為單進(jìn)程實(shí)例和多進(jìn)程實(shí)90單進(jìn)程/單用戶(hù)一個(gè)進(jìn)程執(zhí)行全部ORACLE代碼。SGAORACLEServer數(shù)據(jù)庫(kù)應(yīng)用ORACLE的體系結(jié)構(gòu)進(jìn)程36單進(jìn)程/單用戶(hù)SGAORACLEServerO91多進(jìn)程/多用戶(hù)使用多個(gè)進(jìn)程執(zhí)行ORACLE的不同代碼,對(duì)于每一個(gè)連接的用戶(hù)都有一個(gè)進(jìn)程。SGA服務(wù)器進(jìn)程用戶(hù)進(jìn)程后臺(tái)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)進(jìn)程37多進(jìn)程/多用戶(hù)SGA服務(wù)器進(jìn)程用戶(hù)進(jìn)程后臺(tái)進(jìn)程92用戶(hù)進(jìn)程當(dāng)用戶(hù)運(yùn)行一個(gè)應(yīng)用程序時(shí),就建立一個(gè)用戶(hù)進(jìn)程。ORACLE的體系結(jié)構(gòu)用戶(hù)進(jìn)程38用戶(hù)進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)用戶(hù)進(jìn)程93服務(wù)器進(jìn)程處理用戶(hù)進(jìn)程的請(qǐng)求。處理過(guò)程分析SQL命令并生成執(zhí)行方案。從數(shù)據(jù)緩沖存儲(chǔ)區(qū)中讀取數(shù)據(jù)。將執(zhí)行結(jié)果返回給用戶(hù)。ORACLE的體系結(jié)構(gòu)服務(wù)器進(jìn)程39服務(wù)器進(jìn)程O(píng)RACLE的體系結(jié)構(gòu)服務(wù)器進(jìn)程94后臺(tái)進(jìn)程為所有數(shù)據(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)程O(píng)RACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程40后臺(tái)進(jìn)程主要的后臺(tái)進(jìn)程有ORACLE的體系結(jié)構(gòu)后95ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程DBWR(DataBaseWriter)

將數(shù)據(jù)緩沖區(qū)中所有修改過(guò)的緩沖塊數(shù)據(jù)寫(xiě)到數(shù)據(jù)文件中,并使用LRU(Least-Recently-Used)算法來(lái)保持緩沖區(qū)中的數(shù)據(jù)塊為最近經(jīng)常使用的,以減少I(mǎi)/O次數(shù)。該進(jìn)程在啟動(dòng)實(shí)例時(shí)自動(dòng)啟動(dòng)41ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程DBWR(Data96DBWR進(jìn)行寫(xiě)操作的情況:臟列表達(dá)到最低限制。相當(dāng)于參數(shù)DB_BLOCK_WRITE_BATCH值的一半。一個(gè)進(jìn)程在LRU列表中掃描指定數(shù)目的緩沖塊,未找到空閑緩沖塊。參數(shù)DB_BLOCK_MAX_SCAN_CNT確定掃描數(shù)目。ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程42DBWR進(jìn)行寫(xiě)操作的情況:ORACLE的體系結(jié)構(gòu)97ORACLE的體系結(jié)構(gòu)后臺(tái)進(jìn)程出現(xiàn)超時(shí)3秒鐘內(nèi)該進(jìn)程未活動(dòng),則該進(jìn)程將在LRU列表中查找尚未查找的緩沖塊,這組緩沖塊的數(shù)目相當(dāng)于參數(shù)DB_BLOCK_WRI

溫馨提示

  • 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)論