天天看點

oracle 記憶體監控

http://www.examda.com/oracle/zhonghe/20100504/093839663.html

ORACLE的資料庫所占用的記憶體區域被稱為SGA,它主要由三部分組成,第一部分是DATA BUFFER,第二部分是LOG BUFFER,第三部分是SHARED POOL。

  DATA BUFFER中存放的是常用的ORACLE資料塊,當ORACLE中的某個事務要對某些資料進行查詢或修改時,ORACLE會首先在DATA BUFFER中尋找該資料塊,若能找到,則操作直接在記憶體中進行,不需要實體讀操作,這樣可以提高系統性能。對于DATA BUFFER的管理而言,最重要的一個名額就是它的命中率,如果命中率大于95%,則說明絕大多數資料都可以直接在記憶體中通路到,系統的性能尚可,若此值 小于95%,則需增大DATA BUFFER的空間。

  LOG BUFFER中存放的是ORACLE的REDO LOG資訊,這些資訊在滿足一定的條件時由ORACLE背景程序LGWR寫入到實體的REDO LOG檔案中。如果LOG BUFFER的空間太小,而CPU較快,硬碟較慢,則在事務處理繁忙時,有可能會造成當LOG BUFFER還沒有完全寫入REDO LOG時,LOG BUFFER已全部占滿的情況。此時正在被處理的事務隻能等待系統将LOG BUFFER完全寫入檔案後才能繼續,這樣一來,系統的性能将受到影響。對于LOG BUFFER的管理而言,最重要的一個名額就看是它的REDO LOG SPACE REQUEST與REDO ENTRIES的比率,如果此數值小于1/5000,則說明系統的性能尚可,若此值大于1/5000,則需增大LOG BUFFER的空間。

  SHARED POOL主要由兩部分組成,其一為DICTIONARY CACHE,其二為LIBRARY CACHE。

  DICTIONARY CACHE在記憶體中存放ORACLE資料庫中常用的資料字典的資訊,若此區域太小,當ORACLE需要某些資料字典資訊,如對某使用者的權限設定等資訊時, 如果該資訊不能在DICTIONARY CACHE中找到,則必須先通過實體讀從ORACLE資料庫的資料檔案中得到該資訊,然後再将該記憶體區域的部分資訊替換出去。如此反複,将大大影響系統的 性能。對于DICTIONARY CACHE的管理而言,最重要的一個名額就是它的命中率,如果命中率大于95%,則說明絕大多數資料字典資訊都可以直接在記憶體中通路到,系統的性能尚可, 若此值小于95%,則需增大SHARED POOL的空間,進而間接增大DICTIONARY CACHE的空間。

  LIBRARY CACHE在記憶體中存放經文法分析後的、可執行的SQL CURSOR的資訊和編譯後的PL/SQL的程式等。當使用者向ORACLE發出一個SQL指令後,ORACLE首先利用其内部的HASH函數将此SQL語 句的文本映射成一個LIBRARY CACHE中的位址,檢查在該位址是否有已經過文法分析後的、可執行的與該SQL語句對應的SQL CURSOR的資訊,如果沒有,則ORACLE将該SQL語句經文法分析後的結果存放在此,這樣一來,下一條與此完全一緻的SQL語句将不必再次進行文法 分析。ORACLE資料庫通過這樣的機制來提高系統性能。但如果LIBRARY CACHE太小,當使用者下一條完全一緻的SQL語句鍵入時,原SQL語句經文法分析後的結果已被替換出去,在這樣的情況下,系統的性能将大受影響。是以對 于LIBRARY CACHE的管理而言,最重要的一個名額就是它的命中率,如果命中率大于95%,則說明絕大多數可執行資訊都可以直接在記憶體中通路到,不必再次經過文法分 析和編譯,系統的性能尚可,若此值小于95%,則需增大SHARED POOL的空間,進而間接增大LIBRARY CACHE的空間。

  目标

  監控資料庫的記憶體使用效率,以确定資料庫的使用是否存在嚴重的記憶體配置問題。

  常用的掃描類型

  BCHRATIO:此掃描類型顯示DATA BUFFER的命中率,通常情況下,該數值不應小于95%。

  DATABASE SLOTS – REDO LOGS:此掃描類型顯示關于LOG BUFFER的資訊。

  LIBRARY CACHE – PIN HIT RATIO:此掃描類型顯示關于LIBRARY CACHE的命中率。

  DICTIONARY CACHE – HIT RATIO:此掃描類型顯示關于DICTIONARY CACHE的命中率。

  表格1.與記憶體監控有關的掃描類型

Scan Group

Scan Type

Description

Dictionary Cache Info

Hit Ratio

資料字典緩沖區命中率。當命中率較低且系統事務繁忙時,應适當加大init/*$ORACLE_SID*/.ora檔案中的SHARE_POOL_SIZE參數

Pin Hit Ratio

對Library Cache 發出pin請求的命中率,通常,如果pin 的命中率小于95%,适當增大init/*$ORACLE_SID*/.ora檔案中SHARED_POOL_SIZE參數

Request Hit Ratio

對Library Cache 發出get請求的命中率,通常,如果pin 的命中率小于95%,适當增大init/*$ORACLE_SID*/.ora檔案中SHARED_POOL_SIZE參數

I/O Performance Info

Buffer Cache Hit Ratio

資料緩沖區命中率。如果該命中率經常低于95%,則需要增加init/*$ORACLE_SID*/.ora檔案中的db_block_buffers參數

Individual Scan Types

SGA

SGA區中每一個部分的大小

Latch Contention Pct.

Latch請求逾時的比率

  表格2.與記憶體監控有關部門的報警類型

Related Event

Performance Workspace

AL_hitratio.wsv

I/O Performance Info Group

如果 buffer cache命中率低于門檻值,引發報警。此報警可以用于檢查是否Buffer Cache過小。

SgaFreememLow

AL_SgaFreeMemLow.wsv

SGA Status

如果SGA memory 百分比少于門檻值,觸發報警。

來源:考試大-Oracle認證考試

下一篇: 日志記錄