Oracle SGA設(shè)置的詳細(xì)介紹
沒有通用的Oracle SGA設(shè)置,那么所有Oracle SGA設(shè)置都需要根據(jù)系統(tǒng)的負(fù)載、相關(guān)的業(yè)務(wù)需求與某些硬件環(huán)境來對(duì)其進(jìn)行調(diào)整。這里只是總結(jié)出大體的設(shè)定,避免因SGA設(shè)置不當(dāng)引起的問題。
1,自動(dòng)SGA內(nèi)存管理
在Oracle 10g中引入了自動(dòng)SGA內(nèi)存管理特性,DBA可以設(shè)定SGA_TARGET告訴Oracle可用的SGA內(nèi)存為多大,由Oracle根據(jù)系統(tǒng)負(fù)載來動(dòng)態(tài)調(diào)整各組件大小,相應(yīng)的數(shù)定會(huì)保存在控制文件中,使數(shù)據(jù)庫重啟后也記得各組件大小。
需要注意一下幾點(diǎn):
要使用自動(dòng)SGA內(nèi)存管理,STATISTICS_LEVEL參數(shù)必須設(shè)為TYPICAL或ALL,系統(tǒng)自動(dòng)收集相應(yīng)的信息用來動(dòng)態(tài)調(diào)整SGA設(shè)定。
可以設(shè)定某個(gè)組件的值,Oracle SGA使用此值為該組件的最小大小
可動(dòng)態(tài)調(diào)整的參數(shù):
DB_CACHE_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE。
需手動(dòng)設(shè)置的參數(shù):
LOG_BUFFER,STREAMS_POOL,DB_NK_CACHE_SIZE,DB_KEEP_CACHE_SIZE,DB_RECYCLE_CACHE_SIZE。
2,手動(dòng)SGA內(nèi)存管理
1) 32bit和64bit限制
在32位的操作系統(tǒng)中,Oracle最大可用內(nèi)存為1.75g,也就是說SGA+PGA<=1.75g,超過這一限制的內(nèi)存將不會(huì)被Oracle用到。
32位的Oracle可以裝到64位的操作系統(tǒng)上,64位的Oracle SGA不可以裝到32位的操作系統(tǒng)上。
2) 查看Oracle版本:
SQL> select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 – Production
3) 各組件設(shè)置:
JAVA_POOL_SIZE:如果沒用到數(shù)據(jù)庫端java的系統(tǒng),30MB足夠。
LOG_BUFFER:默認(rèn)為MAX(512KB,128KB*CPU個(gè)數(shù))。一般系統(tǒng)1MB足夠,運(yùn)行大型事務(wù)的系統(tǒng)可以設(shè)為2MB,讓1/3滿寫入日志文件時(shí)可以繼續(xù)寫入緩沖,再大也沒有意義。
SHARED_POOL_SIZE:過大過小都會(huì)嚴(yán)重影響系統(tǒng)性能,1GB內(nèi)存可以設(shè)為100MB,2GB內(nèi)存可設(shè)為150MB,4GB內(nèi)存可設(shè)為300MB。共享池命中過低首先要調(diào)整的是應(yīng)用程序而不是擴(kuò)大共享池。使用綁定變量可以減少共享池需求、提高命中率,減少共享池管理負(fù)擔(dān)和LATCH競爭。
LARGE_POOL_SIZE:使用專用服務(wù)模式可設(shè)為30MB,除非必要,不然不建議使用共享服務(wù)器模式。
DB_CACHE_SIZE:除去上述內(nèi)存外其他可用內(nèi)存都分配給該區(qū)域。
總結(jié)
32位Oracle SGA:
1G內(nèi)存:SHARED_POOL_SIZE=100MB,DB_CACHE_SIZE=0.5GB;
2G內(nèi)存:SHARED_POOL_SIZE=150MB,DB_CACHE_SIZE=1.25GB;
64位Oracle
4G內(nèi)存:SHARED_POOL_SIZE=200MB,DB_CACHE_SIZE=2.5GB;
8G內(nèi)存:SHARED_POOL_SIZE=400MB,DB_CACHE_SIZE=5GB;
12G內(nèi)存:SHARED_POOL_SIZE=500MB,DB_CACHE_SIZE=8GB
再次強(qiáng)調(diào),以上只是避免因SGA設(shè)置不當(dāng)引起問題的大體設(shè)置,需要根據(jù)具體的系統(tǒng)負(fù)載和業(yè)務(wù)邏輯結(jié)合Stackpack等工具細(xì)調(diào)。
【編輯推薦】