- 相關(guān)推薦
Oracle數(shù)據(jù)庫(kù)內(nèi)存監(jiān)控和意義
ORACLE的數(shù)據(jù)庫(kù)所占用的內(nèi)存區(qū)域被稱(chēng)為SGA,它主要由三部分組成,第一部分是DATA BUFFER,第二部分是LOG BUFFER,第三部分是SHARED POOL。
DATA BUFFER中存放的是常用的ORACLE數(shù)據(jù)塊,當(dāng)ORACLE中的某個(gè)事務(wù)要對(duì)某些數(shù)據(jù)進(jìn)行查詢(xún)或修改時(shí),ORACLE會(huì)首先在DATA BUFFER中尋找該數(shù)據(jù)塊,若能找到,則操作直接在內(nèi)存中進(jìn)行,不需要物理讀操作,這樣可以提高系統(tǒng)性能。對(duì)于DATA BUFFER的管理而言,最重要的一個(gè)指標(biāo)就是它的命中率,如果命中率大于95%,則說(shuō)明絕大多數(shù)數(shù)據(jù)都可以直接在內(nèi)存中訪(fǎng)問(wèn)到,系統(tǒng)的性能尚可,若此值 小于95%,則需增大DATA BUFFER的空間。
LOG BUFFER中存放的是ORACLE的REDO LOG信息,這些信息在滿(mǎn)足一定的條件時(shí)由ORACLE后臺(tái)進(jìn)程LGWR寫(xiě)入到物理的REDO LOG文件中。如果LOG BUFFER的空間太小,而CPU較快,硬盤(pán)較慢,則在事務(wù)處理繁忙時(shí),有可能會(huì)造成當(dāng)LOG BUFFER還沒(méi)有完全寫(xiě)入REDO LOG時(shí),LOG BUFFER已全部占滿(mǎn)的情況。此時(shí)正在被處理的事務(wù)只能等待系統(tǒng)將LOG BUFFER完全寫(xiě)入文件后才能繼續(xù),這樣一來(lái),系統(tǒng)的性能將受到影響。對(duì)于LOG BUFFER的管理而言,最重要的一個(gè)指標(biāo)就看是它的REDO LOG SPACE REQUEST與REDO ENTRIES的比率,如果此數(shù)值小于1/5000,則說(shuō)明系統(tǒng)的性能尚可,若此值大于1/5000,則需增大LOG BUFFER的空間。
SHARED POOL主要由兩部分組成,其一為DICTIONARY CACHE,其二為L(zhǎng)IBRARY CACHE。
DICTIONARY CACHE在內(nèi)存中存放ORACLE數(shù)據(jù)庫(kù)中常用的數(shù)據(jù)字典的信息,若此區(qū)域太小,當(dāng)ORACLE需要某些數(shù)據(jù)字典信息,如對(duì)某用戶(hù)的權(quán)限設(shè)置等信息時(shí), 如果該信息不能在DICTIONARY CACHE中找到,則必須先通過(guò)物理讀從ORACLE數(shù)據(jù)庫(kù)的數(shù)據(jù)文件中得到該信息,然后再將該內(nèi)存區(qū)域的部分信息替換出去。如此反復(fù),將大大影響系統(tǒng)的 性能。對(duì)于DICTIONARY CACHE的管理而言,最重要的一個(gè)指標(biāo)就是它的命中率,如果命中率大于95%,則說(shuō)明絕大多數(shù)數(shù)據(jù)字典信息都可以直接在內(nèi)存中訪(fǎng)問(wèn)到,系統(tǒng)的性能尚可, 若此值小于95%,則需增大SHARED POOL的空間,從而間接增大DICTIONARY CACHE的空間。
LIBRARY CACHE在內(nèi)存中存放經(jīng)語(yǔ)法分析后的、可執(zhí)行的SQL CURSOR的信息和編譯后的PL/SQL的程序等。當(dāng)用戶(hù)向ORACLE發(fā)出一個(gè)SQL命令后,ORACLE首先利用其內(nèi)部的HASH函數(shù)將此SQL語(yǔ) 句的文本映射成一個(gè)LIBRARY CACHE中的地址,檢查在該地址是否有已經(jīng)過(guò)語(yǔ)法分析后的、可執(zhí)行的與該SQL語(yǔ)句對(duì)應(yīng)的SQL CURSOR的信息,如果沒(méi)有,則ORACLE將該SQL語(yǔ)句經(jīng)語(yǔ)法分析后的結(jié)果存放在此,這樣一來(lái),下一條與此完全一致的SQL語(yǔ)句將不必再次進(jìn)行語(yǔ)法 分析。ORACLE數(shù)據(jù)庫(kù)通過(guò)這樣的機(jī)制來(lái)提高系統(tǒng)性能。但如果LIBRARY CACHE太小,當(dāng)用戶(hù)下一條完全一致的SQL語(yǔ)句鍵入時(shí),原SQL語(yǔ)句經(jīng)語(yǔ)法分析后的結(jié)果已被替換出去,在這樣的情況下,系統(tǒng)的性能將大受影響。因此對(duì) 于LIBRARY CACHE的管理而言,最重要的一個(gè)指標(biāo)就是它的命中率,如果命中率大于95%,則說(shuō)明絕大多數(shù)可執(zhí)行信息都可以直接在內(nèi)存中訪(fǎng)問(wèn)到,不必再次經(jīng)過(guò)語(yǔ)法分 析和編譯,系統(tǒng)的性能尚可,若此值小于95%,則需增大SHARED POOL的空間,從而間接增大LIBRARY CACHE的空間。
目標(biāo)
監(jiān)控?cái)?shù)據(jù)庫(kù)的內(nèi)存使用效率,以確定數(shù)據(jù)庫(kù)的使用是否存在嚴(yán)重的內(nèi)存配置問(wèn)題。
常用的掃描類(lèi)型
BCHRATIO:此掃描類(lèi)型顯示DATA BUFFER的命中率,通常情況下,該數(shù)值不應(yīng)小于95%。
DATABASE SLOTS – REDO LOGS:此掃描類(lèi)型顯示關(guān)于LOG BUFFER的信息。
LIBRARY CACHE – PIN HIT RATIO:此掃描類(lèi)型顯示關(guān)于LIBRARY CACHE的命中率。
DICTIONARY CACHE – HIT RATIO:此掃描類(lèi)型顯示關(guān)于DICTIONARY CACHE的命中率。
表格1.與內(nèi)存監(jiān)控有關(guān)的掃描類(lèi)型
Scan Group |
Scan Type |
Description |
Dictionary Cache Info |
Hit Ratio |
數(shù)據(jù)字典緩沖區(qū)命中率。當(dāng)命中率較低且系統(tǒng)事務(wù)繁忙時(shí),應(yīng)適當(dāng)加大init/*$ORACLE_SID*/.ora文件中的SHARE_POOL_SIZE參數(shù) |
Pin Hit Ratio |
對(duì)Library Cache 發(fā)出pin請(qǐng)求的命中率,通常,如果pin 的命中率小于95%,適當(dāng)增大init/*$ORACLE_SID*/.ora文件中SHARED_POOL_SIZE參數(shù) |
|
Request Hit Ratio |
對(duì)Library Cache 發(fā)出get請(qǐng)求的命中率,通常,如果pin 的命中率小于95%,適當(dāng)增大init/*$ORACLE_SID*/.ora文件中SHARED_POOL_SIZE參數(shù) |
|
I/O Performance Info |
Buffer Cache Hit Ratio |
數(shù)據(jù)緩沖區(qū)命中率。如果該命中率經(jīng)常低于95%,則需要增加init/*$ORACLE_SID*/.ora文件中的db_block_buffers參數(shù) |
Individual Scan Types |
SGA |
SGA區(qū)中每一個(gè)部分的大小 |
Latch Contention Pct. |
Latch請(qǐng)求超時(shí)的比率 |
表格2.與內(nèi)存監(jiān)控有關(guān)部門(mén)的報(bào)警類(lèi)型
Related Event |
Performance Workspace |
Scan Group |
Scan Type |
Description |
Hit Ratio |
AL_hitratio.wsv |
I/O Performance Info Group |
Buffer Cache Hit Ratio |
如果 buffer cache命中率低于閾值,引發(fā)報(bào)警。此報(bào)警可以用于檢查是否Buffer Cache過(guò)小。 |
SgaFreememLow |
AL_SgaFreeMemLow.wsv |
Individual Scan Types |
SGA Status |
如果SGA memory 百分比少于閾值,觸發(fā)報(bào)警。 |
【Oracle數(shù)據(jù)庫(kù)內(nèi)存監(jiān)控和意義】相關(guān)文章:
Oracle數(shù)據(jù)庫(kù)SQLPLUS介紹07-16
Oracle數(shù)據(jù)庫(kù)基本知識(shí)08-12
學(xué)習(xí)Oracle數(shù)據(jù)庫(kù)技巧攻略06-09
Linux系統(tǒng)監(jiān)控內(nèi)存管理命令大全09-07
Oracle數(shù)據(jù)庫(kù)知識(shí)點(diǎn):SQLPLUS介紹07-16
Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí):SELECT語(yǔ)句10-07
2016最新Oracle數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出命令總結(jié)07-16
Oracle數(shù)據(jù)庫(kù)中表的四種連接方式07-26