《Administrator's Guide》第6章介紹了ORACLE實(shí)例的內(nèi)存管理,在11g中,ORACLE默認(rèn)使用自動(dòng)內(nèi)存管理(AMM)來(lái)管理SGA和PGA的大小。除了默認(rèn)的方法之外,還可以使用自動(dòng)共享內(nèi)存管理SGA(ASMM)、手動(dòng)共享內(nèi)存管理SGA、自動(dòng)PGA內(nèi)存管理、手動(dòng)PGA內(nèi)存管理。
成都創(chuàng)新互聯(lián)公司是專業(yè)的南岳網(wǎng)站建設(shè)公司,南岳接單;提供成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行南岳網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!一、自動(dòng)內(nèi)存管理
自動(dòng)內(nèi)存管理是最方便的內(nèi)存管理方式,只需要設(shè)定參數(shù)MEMORY_TARGET的值,ORACLE 就會(huì)根據(jù)實(shí)際需要分配SGA和PGA。
1.1應(yīng)用自動(dòng)內(nèi)存管理
1.用SYSDBA的身份連接SQL*PLUS
2. 計(jì)算MEMORY_TARGET的值
1)show parameter target,查看sga_target和pga_aggregate_target的值
2)查看實(shí)例啟動(dòng)之后分配的大的pga的值
select round(value/1024/1024) "MB"
from v$pgastat
where name='maximum PGA allocated';
3)MEMORY_TARGET=sga_target+max(pga_aggregate_target,maximum PGA allocated)
3.可以使用第二步中計(jì)算出來(lái)的MEMORY_TARGET的值,或者設(shè)定一定大于計(jì)算出來(lái)的值,記為m.
4.可以使用MEMORY_TARGET或者一個(gè)大于MEMORY_TARGET的值作為MEMORY_MAX_TARGET的值,MEMORY_MAX_TARGET是MEMORY_TARGET所能調(diào)整到的大值,記為n。
5.修改MEMORY_MAX_TARGET的值:
ALTER SYSTEM SET MEMORY_MAX_TARGET = nM SCOPE = SPFILE;
6.重啟數(shù)據(jù)庫(kù)
7.修改MEMORY_TARGET的值。
ALTER SYSTEM SET MEMORY_TARGET = nM;
ALTER SYSTEM SET SGA_TARGET = 0;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0;
1.2 監(jiān)控自動(dòng)內(nèi)存管理
select * from v$memory_target_advice order by memory_size;
二、自動(dòng)共享內(nèi)存管理
自動(dòng)共享內(nèi)存管理(ASMM)簡(jiǎn)化了SGA的管理,通過(guò)設(shè)置SGA_TARGRT的值,數(shù)據(jù)庫(kù)會(huì)自動(dòng)管理SGA組成部分的值。SGA可以被自動(dòng)管理的部分分別是shared pool、large pool、Java pool、buffer cache、Streams pool,需要手動(dòng)設(shè)值的部分是log buffer、keep and recycle buffer caches、Nonstandard block size buffer caches。
監(jiān)控ASMM內(nèi)存管理的視圖是v$sga_target_advice:
select * from v$sga_target_advice order by sga_size;
應(yīng)用自動(dòng)共享內(nèi)存管理:
1.從手動(dòng)共享內(nèi)存管理切換到自動(dòng)共享內(nèi)存管理
1)運(yùn)行以下SQL:
SELECT round(((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY))/1024/1024,2) "SGA_TARGET"
FROM DUAL;
2)設(shè)置SGA_TARGET的值:
ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
value的值可以是1)中計(jì)算出的值,也可以是SGA各個(gè)部分之和至 SGA_MAX_SIZE中的值。
3)指定SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、DB_CACHE_SIZE、STREAMS_POOL_SIZE的最小值(可以是0也可以是非0值)。
2.從AMM切換到ASMM:
1)ALTER SYSTEM SET MEMORY_TARGET = 0;
2)設(shè)置SGA_TARGET的值
3)指定SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、DB_CACHE_SIZE、STREAMS_POOL_SIZE的最小值(可以是0也可以是非0值)。
三、手動(dòng)共享內(nèi)存管理
在這種模式下,需要設(shè)置SGA各個(gè)部分的值,如果沒(méi)有設(shè)置的話,就會(huì)使用默認(rèn)值。
要啟用這種模式,則需要禁用MEMORY_TARGET、SGA_TARGET的值。
四、自動(dòng)PGA內(nèi)存管理
需設(shè)置pga_aggregate_target的值。
五、手動(dòng)PGA內(nèi)存管理
workarea_size_policy的值要設(shè)置成manual, 需要設(shè)置SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE 、 CREATE_BITMAP_AREA_SIZE.的值。
Oracle強(qiáng)烈建議使用自動(dòng)管理PGA的模式。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。