第二課內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程_第1頁
第二課內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程_第2頁
第二課內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程_第3頁
第二課內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程_第4頁
第二課內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、深入Oracle 第二課-內(nèi)存結(jié)構(gòu)和進(jìn)程2013.2.28法律【】和幻燈片為煉數(shù)成金網(wǎng)絡(luò)課程的教學(xué)資料,所有資料只能在課程內(nèi)使用,不得在課程以外范圍散播,違者將可能被責(zé)任。法律和經(jīng)濟(jì)課程詳情煉數(shù)成金培訓(xùn)http:2013.2.282Oracle實(shí)例-內(nèi)存+進(jìn)程2013.2.282013-3-8為什么要做的如此復(fù)雜?內(nèi)存數(shù)據(jù)查詢的速度更好的數(shù)據(jù)處理的速度進(jìn)程為了完成特定的任務(wù)的服務(wù)進(jìn)程數(shù)據(jù)文件數(shù)據(jù)的性保存也是數(shù)據(jù)庫性能下降的主要原因內(nèi)存數(shù)據(jù)庫 Oracle times10SSD磁盤2013.2.282013-3-8實(shí)例之內(nèi)存System global area (SGA)SGA區(qū)包括Oracle

2、實(shí)例需要的一系列內(nèi)存組件,用于存放數(shù)據(jù)信息和數(shù)據(jù)控制信息,比如buffer cache,shared_pool,log buffer這些內(nèi)存信息被所有進(jìn)程所共享(servProgram global area (PGA)ros background pros)。不同于SGA,PGA屬于獨(dú)占式內(nèi)存區(qū),它的數(shù)據(jù)和控制信息為某個(gè)會(huì)話所獨(dú)有,當(dāng)一個(gè)會(huì)話產(chǎn)生時(shí),Oracle會(huì)為這個(gè)會(huì)話分配一個(gè)PGA內(nèi)存區(qū)域。PGA屬于單個(gè)的服務(wù)端進(jìn)程或者進(jìn)程,而實(shí)例級(jí)別說的PGA,通常指的是所有這些會(huì)話占用的PGA的總和,也就是由參數(shù)pga_aggregate_User Global Area (UGA)設(shè)定的值。UG

3、A中保存和當(dāng)前會(huì)話相關(guān)的信息,比如pl/sql的變量,綁定變量的值或者起它和當(dāng)前會(huì)話相關(guān)的信息。Software code areas這是Oracle存放自身代碼的一部分內(nèi)存區(qū),不允許其他會(huì)話。2013.2.282013-3-8Oracle實(shí)例的內(nèi)存結(jié)構(gòu)2013.2.282013-3-8SGA區(qū)Database Buffer CacheRedo Log BufferShared PoolLarge PoolJava PoolStreams PoolFixed SGASGAShared poolStreams poolLarge poolFixed SGADatabase buffer cach

4、eRedo log bufferJava pool2013.2.282013-3-8SGA-Database Buffer CacheBuffer cache 里面存放這從磁盤上讀到內(nèi)存中的數(shù)據(jù)塊,這些數(shù)據(jù)塊可以被所有的會(huì)話訪問,是全局共享的。Default pool正常情況下,數(shù)據(jù)塊存放的內(nèi)存區(qū)域。Keep pool這個(gè)區(qū)域(池)用于將一些數(shù)據(jù)始終固定在內(nèi)存中,Default pool會(huì)根據(jù)一個(gè)過期算將過期的臟數(shù)據(jù)寫到磁盤上。Recycle poolRU)存放一些不經(jīng)常使用的數(shù)據(jù)塊,避免這些數(shù)據(jù)塊在Default pool池中占據(jù)空間。2013.2.282013-3-8SGA-Databas

5、e Buffer Cache2k,4k,16k用于存放不是標(biāo)準(zhǔn)大小(8k)表空間的數(shù)據(jù)塊信息。2013.2.282013-3-8buffer的概念在database buffer cache當(dāng)中,一個(gè)buffer指的是用來從磁盤中讀入的數(shù)據(jù)塊在內(nèi)存中的存放位置,可以理解為 1 buffer=1 block.buffer(內(nèi)存數(shù)據(jù)塊)的3種狀態(tài)unusedcleandirtyBuffer 的2種模式Current modeConsistent mode2013.2.282013-3-8SGA-Redo log bufferRedo log buffer 中存放這數(shù)據(jù)庫產(chǎn)生的redo數(shù)據(jù)。Redo

6、 log buffer以循環(huán)的方式寫入,當(dāng)redo log已經(jīng)寫到磁盤后,就可以被后續(xù)的日志數(shù)據(jù)覆蓋2013.2.282013-3-8SGA-shared poolLibrary CacheData Dictionary CacheServer Result CachePool2013.2.282013-3-8SGA-shared poolLibrary CacheLibrary Cache里面保存著可執(zhí)行的SQL及Pl/SQL包,以及SQL的執(zhí)行計(jì)劃和一些控制結(jié)構(gòu),比如鎖。當(dāng)一條SQL語句被執(zhí)行時(shí),Oracle嘗試到Library Cache中查找是否有相同的SQL(通過hash_value

7、),如果有,將直接重用存在的SQL的信息(執(zhí)行計(jì)劃),這個(gè)稱作軟(soft pase)或者叫做library cache hit,反之,SQL將被重新,這個(gè)過程稱為hard parse或者叫l(wèi)ibrary cache miss.2013.2.282013-3-8SGA-shared poolData Dictionary Cache數(shù)據(jù)字典區(qū)存放Oracle的數(shù)據(jù)字典信息,這些信息包含數(shù)據(jù)庫中對象的數(shù)據(jù)信息,結(jié)構(gòu)信息等,這些信息在SQL的過程中需要頻繁的被到。視圖 dba(all,user)_tables .基表 user$,table$.表X$.x$bh2013.2.282013-3-8SG

8、A-Server Result Cache這部分內(nèi)存中保留了SQL查詢的結(jié)果集,這樣對于后續(xù)的相同查詢,Oracle無需重新加載數(shù)據(jù)塊進(jìn)行計(jì)算,直接使用現(xiàn)有的數(shù)據(jù)集。由參數(shù)RESULT_CACHE_MODE設(shè)定默認(rèn)值 Manual,需要使用 RESULT_CACHE h來啟用。FORCE 對所有SELECT操作生效(會(huì)消耗shared_pool空間)PL/SQL 函數(shù)結(jié)果對于pl/sql函數(shù),對結(jié)果進(jìn)行緩存。2013.2.282013-3-8SGA-shared poolOLTP性能優(yōu)化的一個(gè)重要區(qū)域。軟分析,硬分析,變量綁定.2013.2.282013-3-8SGA-large poolla

9、rge pool對數(shù)據(jù)的處理不使用LRU算法,比shared pool更高效的內(nèi)存收取方式:在MTS模式下UGA會(huì)放在large pool。并行執(zhí)行時(shí)會(huì)使用large pool。Rman備份時(shí)啟動(dòng)并行備份方式時(shí),使用large pool。2013.2.282013-3-8Streams PoolStreams Pool里面存放著留相關(guān)的信息,比如流隊(duì)列信息,同時(shí)也為流capture進(jìn)程提供進(jìn)程內(nèi)存空間。中Streams Pool只為流個(gè)空間將設(shè)置為0.提供內(nèi)存空間,如果沒有手工配置,也沒有配置流,這2013.2.282013-3-8其它SGA組件Java pool用于保存會(huì)話運(yùn)行的JAVA代碼

10、和信息,比如java類,方法.Fixed SGA保存通用的數(shù)據(jù)庫和實(shí)例狀態(tài)信息。保存實(shí)例間通訊需要的結(jié)構(gòu),比如鎖。大小通常改變很小,無法手工改變。2013.2.282013-3-8PGA-Program Global AreaPGA組成Private SQL Area2013.2.282013-3-8UGA-User global area登錄信息,變量值,pl/sql 參數(shù).olap 維度對象,比如cube2013.2.282013-3-8PGA & UGAPGA是一個(gè)進(jìn)程占用的內(nèi)存區(qū)域,可以理解為操作系統(tǒng)在一個(gè)進(jìn)程啟動(dòng)時(shí),為它分配的內(nèi)存空間,是一個(gè)操作系統(tǒng)含義上的內(nèi)存區(qū)。UGA是一個(gè)會(huì)話含

11、義的內(nèi)存區(qū),它保存著和會(huì)話相關(guān)的信息,比如會(huì)話登錄信息,綁定變量的值,Pl/SQL包的參數(shù)信息等。UGA必須保證會(huì)話能夠到UGA當(dāng)中的數(shù)據(jù),因此UGA的位置會(huì)隨數(shù)據(jù)庫連接方式的不同而不同。當(dāng)連接使用的是模式(dedicated)時(shí),因?yàn)闀?huì)話是專有的,所以UGA屬于PGA的一部分。當(dāng)連接模式為MTS時(shí),由于會(huì)話可能會(huì)使用任意一個(gè)共享進(jìn)程,因此這些進(jìn)程必須能夠同時(shí)UGA中的數(shù)據(jù),此時(shí)Oracle會(huì)把UGA放在SGA區(qū)享內(nèi)存區(qū)域)。2013.2.282013-3-8SGA和PGASGA的目的在于數(shù)據(jù)的共享,它的特點(diǎn)是:數(shù)據(jù)并發(fā)鎖定和隊(duì)列機(jī)制(latch ,lock.)是一個(gè)常見的性能瓶頸區(qū)。是一個(gè)數(shù)

12、據(jù)庫優(yōu)化經(jīng)常關(guān)注的區(qū)域data buffer hitlibrary hird parse ,soft parse)hot blocks.PGA是為專有進(jìn)程服務(wù)的,進(jìn)程間無法進(jìn)行數(shù)據(jù)共享,它的特點(diǎn)是:數(shù)據(jù)獨(dú)占性無需鎖定機(jī)制性能優(yōu)化上只需考慮它的大小。2013.2.282013-3-8Oracle的進(jìn)程us servroros用戶進(jìn)程 服務(wù)器進(jìn)程sbackground pros實(shí)例進(jìn)程2013.2.282013-3-8Oracle實(shí)例的進(jìn)程SGAShared poolStreams poolLarge poolDatabase buffer cacheRedo log bufferJava poo

13、lDatabase Writer (DBWn)LogWriter (LGWR)Archiver (2013.2.282013-3-8Checkpo(CKPT)ProsMonitor (PMON)System Monitor (SMON)Oracle實(shí)例的進(jìn)程windowsLinux/unix2013.2.282013-3-8Oracle實(shí)例的進(jìn)程-SMONSMON 的主要工作數(shù)據(jù)庫啟動(dòng)時(shí)的實(shí)例恢復(fù),在RAC環(huán)境下,一個(gè)節(jié)點(diǎn)的SMON可以對另外一個(gè)節(jié)點(diǎn)做實(shí)例恢復(fù)。和臨時(shí)段上的數(shù)據(jù)(排序,臨時(shí)表.)對于DMT(字典管理表空間),SMON可以合并連續(xù)空閑的extent.回滾段的online,offl

14、ine以及空間的回收。2013.2.282013-3-8Oracle實(shí)例的進(jìn)程-PMONtPmon進(jìn)程負(fù)責(zé)一下的工作:進(jìn)程異常終止會(huì)話被殺掉事務(wù)超過空閑時(shí)間網(wǎng)絡(luò)連接超時(shí)將實(shí)例信息到器上手工alter system register;Pmon進(jìn)程的工作:回滾未提交的事務(wù),事務(wù)相關(guān)的資源重置undo數(shù)據(jù)塊上的事務(wù)表的狀態(tài)為inactive。事務(wù)產(chǎn)生的鎖。從v$ses中清除異常終止的會(huì)話ID。2013.2.282013-3-8Oracle實(shí)例的進(jìn)程-DBWn負(fù)責(zé)將buffer cache中臟數(shù)據(jù)(修改過的數(shù)據(jù))塊寫到磁盤上,由于數(shù)據(jù)塊在磁盤上的位置不連續(xù),這個(gè)過程會(huì)比LGWR比較耗時(shí)。DBWn觸發(fā)條

15、件當(dāng)servros無法在buffer cache中無法找到可用的buffer時(shí)。DBWn接到checkpo的指令,將臟數(shù)據(jù)寫到磁盤上。SGADatabase buffer cache可以通過設(shè)置多個(gè)DBWn進(jìn)程加快臟數(shù)據(jù)寫入磁盤的速度DB_WRITER_PROSESDBWnData files2013.2.282013-3-8Oracle實(shí)例的進(jìn)程-CKPTcheckpo的目的:減少數(shù)據(jù)庫實(shí)例恢復(fù)的時(shí)間讓內(nèi)存中的臟數(shù)據(jù)及時(shí)的寫到磁盤上。在安全關(guān)閉數(shù)據(jù)庫時(shí),保證所有提交的數(shù)據(jù)被寫到磁盤上。checkpo的觸發(fā)database checkpoConsistent database shutdown

16、ALTER SYSTEM CHECKPOsementOnline redo log switchALTER DATABASE BEGIN BACKUP sementTablespace and data file checkpotablespace read onlytablespace offline normalshrinking a data filealter tablespace begin backupsIncremental checkpos2013.2.282013-3-8Oracle實(shí)例的進(jìn)程-CKPTCKPT進(jìn)程通知DBWn進(jìn)程開始將內(nèi)存(buffer cache)中的臟數(shù)

17、據(jù)寫到磁盤的文件上。CKPT負(fù)責(zé)更新文件頭和控制文件的信息。2013.2.282013-3-8Oracle實(shí)例的進(jìn)程-LGWRLGWR負(fù)責(zé)將log buffer中的數(shù)據(jù)順序的寫到磁盤上的online redo file,由于是順序的寫入,效率要比DBWn高很多。LGWR觸發(fā)條件用戶提交事務(wù)(commit)日志切換最后一次提交經(jīng)過了3秒。redo log buffer容量達(dá)到1/3或者達(dá)到1M的redo數(shù)據(jù)。DBWn進(jìn)程在把臟數(shù)據(jù)寫入磁盤之前,必須保證這些臟數(shù)據(jù)對應(yīng)的日志信息已經(jīng)被寫入磁盤,如果發(fā)現(xiàn)臟數(shù)據(jù)的日志信息沒有吸入磁盤,DBWn通知LGWR進(jìn)程寫日志信息,完成后繼續(xù)講臟數(shù)據(jù)寫入磁盤。20

18、13.2.282013-3-8和mitcommit 提交的事務(wù)修改的數(shù)據(jù)產(chǎn)生的日志,必須立即寫到磁盤上。刷新到磁盤上的日志中,包含未提交的日志。checkpo將臟數(shù)據(jù)寫到磁盤上,加快數(shù)據(jù)的恢復(fù)時(shí)間,為data buffer提供空閑空間寫到磁盤上的數(shù)據(jù),并不一定是提交的。數(shù)據(jù)寫到磁盤之前,這部分?jǐn)?shù)據(jù)對應(yīng)的日志信息,必須提前寫到磁盤上。如果是alter system將只把mited的數(shù)據(jù)塊寫到磁盤。安全關(guān)閉數(shù)據(jù)庫,所有的commited的數(shù)據(jù)會(huì)寫到磁盤上。2013.2.282013-3-8實(shí)例的進(jìn)程歸檔進(jìn)程,當(dāng)數(shù)據(jù)庫處于歸檔模式時(shí)(archive mode),負(fù)責(zé)將online redo file歸檔到目標(biāo)位置,用于數(shù)據(jù)庫的恢復(fù),當(dāng)日志切換時(shí),會(huì)觸發(fā)進(jìn)程將在線日志文件歸檔。進(jìn)程在data guard下,負(fù)責(zé)將日志向

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論