Oracle資料庫記憶體監控及意義
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的空間。
r 目標
監控資料庫的記憶體使用效率,以確定資料庫的使用是否存在嚴重的記憶體配置問題。
r 常用的掃描型別
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請求超時的比率
r 常用的報警型別
表格2. 與記憶體監控有關部門的報警型別
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命中率低於閾值,引發報警。此報警可以用於檢查是否Buffer Cache過小。
SgaFreememLow
AL_SgaFreeMemLow.wsv
Individual Scan Types
SGA Status
如果SGA memory 百分比少於閾值,觸發報警。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733378/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle對儲存的監控及意義Oracle
- AIX 記憶體監控AI記憶體
- Solaris記憶體監控記憶體
- 記憶體CPU監控記憶體
- 監控Oracle資料庫方法Oracle資料庫
- zabbix監控oracle資料庫Oracle資料庫
- 資料庫監控軟體資料庫
- iOS微信記憶體監控iOS記憶體
- RabbitMQ - 記憶體磁碟監控MQ記憶體
- Solaris記憶體監控(轉)記憶體
- 【大頁記憶體】Oracle資料庫配置大頁記憶體記憶體Oracle資料庫
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- 記憶體資料庫記憶體資料庫
- Oracle資料庫的監控內容Oracle資料庫
- Oracle 資料庫監控SQL語句Oracle資料庫SQL
- Oracle資料庫監控工具:SpotlightOracle資料庫
- oracle資料庫記憶體分配(sga和pga)Oracle資料庫記憶體
- AIX 下oracle 資料庫記憶體優化AIOracle資料庫記憶體優化
- Oracle記憶體中的幾個重要監控指標Oracle記憶體指標
- 資料庫監控資料庫
- 在可插拔資料庫上如何監控程式記憶體的使用 (文件 ID 1985042.1)資料庫記憶體
- Mongodb記憶體資料庫MongoDB記憶體資料庫
- nagios-新增記憶體監控iOS記憶體
- Zabbix+Python監控Oracle資料庫PythonOracle資料庫
- Nagois監控oracle資料庫注意的地方GoOracle資料庫
- nagios-新增oracle資料庫監控iOSOracle資料庫
- oracle資料庫效能監控的SQL(轉)Oracle資料庫SQL
- 從Oracle資料庫故障到AIX記憶體管理Oracle資料庫AI記憶體
- 自定義帶監控的資料庫連線池資料庫
- nagios監控linux主機監控記憶體指令碼iOSLinux記憶體指令碼
- 非易失性記憶體技術及資料庫記憶體資料庫
- shell指令碼:自動記憶體監控及日誌備份指令碼記憶體
- 資料庫效能監控資料庫
- 監控資料庫活動資料庫
- 【記憶體資料庫】TimesTen記憶體資料庫
- 記憶體資料庫如何發揮記憶體優勢?記憶體資料庫
- Flutter 上的記憶體洩漏監控Flutter記憶體