這篇文章主要講解了“AMM與ASMM相關(guān)知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“AMM與ASMM相關(guān)知識(shí)點(diǎn)有哪些”吧!
為二道江等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及二道江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、二道江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
一、AMM相關(guān)知識(shí):
1.從oracle 11.1開(kāi)始o(jì)racle提供了通過(guò)MEMORY_TARGET參數(shù)實(shí)現(xiàn)自動(dòng)SGA和PGA自動(dòng)管理的功能,從此版本開(kāi)始不再需要明確設(shè)置SGA_TARGET及PGA_AGGREGATE_TARGET,這個(gè)被支持在linux、windows、solaris、hpux、aix。
2.在使用MEMORY_TARGET參數(shù)的linux機(jī)器上,在oracle啟動(dòng)時(shí)遇到ORA-00845是由于/dev/shm的大小小于memory_target所致(df -k /dev/shm),如果設(shè)置memory_max_target>memory_target,則需要確保/dev/shm至少memory_max_target
3.從11.1.0.6.0開(kāi)始ASM實(shí)例默認(rèn)實(shí)現(xiàn)自動(dòng)管理SGA及PGA,(禁用ASM實(shí)例的自動(dòng)內(nèi)存管理,必須手動(dòng)設(shè)置memory_target到0,DBCA界面將不支持此更改,這個(gè)bug被修正在11.1.0.7.0)
4.10.1版本之前shared pool在SGA中分配的大小=shared_pool_size+內(nèi)部SGA的開(kāi)銷,此開(kāi)銷被用來(lái)維護(hù)SGA中各組件的狀態(tài),從10.1開(kāi)始shared_pool_size將包括內(nèi)部SGA的開(kāi)銷
5.在手動(dòng)內(nèi)存管理模式下,由于shared_pool_size太小不足以容納內(nèi)部SGA開(kāi)銷將導(dǎo)致ORA-00371
6.在非windows32位的操作系統(tǒng)上SGA_MAX_SIZE默認(rèn)被設(shè)置為memory_target和memory_max_target中的最大值,在windows32操作系統(tǒng)上sga_max_size=60%memory_target+60%memory_max_target+25%可用虛擬地址空間
7.當(dāng)lock_sga初始化參數(shù)被設(shè)置為true時(shí)將不能啟用自動(dòng)內(nèi)存管理
二、啟用、配置AMM:
SQL>show parameter lock_sga ------確保lock_sga為false
SQL>show parameter target ------確定當(dāng)前SGA_TARGET及PGA_AGGREGATE_TARGET的值
SQL>select value from v$pgastat where name='maximum PGA allocated'; ---確定從上次啟動(dòng)DB后的最大實(shí)例的PGA
memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)
為MEMORY_MAX_TARGET確定一個(gè)盡可能大的值,等于或大于SGA_TARGET
當(dāng)DB使用spfile時(shí):ALTER SYSTEM SET MEMORY_MAX_TARGET = nM SCOPE = SPFILE; 當(dāng)DB使用pfile時(shí):編輯pfile設(shè)置memory_max_target = nM memory_target = mM
關(guān)閉并重啟DB
ALTER SYSTEM SET MEMORY_TARGET = nM; ALTER SYSTEM SET SGA_TARGET = 0; ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0;
-------!!!如果你在pfile中設(shè)置了MEMORY_TARGET沒(méi)有設(shè)置MEMORY_MAX_TARGET,則數(shù)據(jù)庫(kù)自動(dòng)設(shè)置MEMORY_MAX_TARGET值為MEMORY_TARGET的值
-------!!!如果你在pfile中設(shè)置了MEMORY_MAX_TARGET而沒(méi)有設(shè)置MEMORY_TARGET,則MEMORY_TARGET默認(rèn)為0,在DB啟動(dòng)后可以動(dòng)態(tài)改變MEMORY_TARGET不超過(guò)MEMORY_MAX_TARGET的值
-------!!!也可以設(shè)置SGA_TARGET或PGA_AGGREGATE_TARGET為一個(gè)非0的值,這個(gè)值將作為SGA或PGA分配的最小值
三、監(jiān)視、優(yōu)化AMM:
SQL> select * from v$memory_target_advice order by memory_size;
-------MEMORY_SIZE_FACTOR表示假設(shè)替代的MEMORY_TARGET大小
-------ESTD_DB_TIME表示在此預(yù)計(jì)的MEMORY_TARGET大小下所需的DB time
二、ASMM相關(guān)知識(shí):
1.SGA_MAX_SIZE設(shè)置:如果不設(shè)置則oracle在初始化的時(shí)候?qū)⑦x擇所有指定組件的總和或者默認(rèn)值,如果設(shè)置的值比分配給所有組件的內(nèi)存小,那么數(shù)據(jù)庫(kù)將忽略此設(shè)置的值
2.SGA_TARGET設(shè)置:在設(shè)置之前,同時(shí)為了啟用自動(dòng)共享內(nèi)存管理的功能,STATISTICS_LEVEL必須被設(shè)置為T(mén)YPICAL (the default)或ALL,如果此參數(shù)被設(shè)置那么必須設(shè)置自動(dòng)調(diào)整大小的組件的大小為0或最小值
3.SGA中能自動(dòng)調(diào)整大小的組件:Fixed SGA、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、DB_CACHE_SIZE、STREAMS_POOL_SIZE
4.SGA中不能自動(dòng)調(diào)整(固定)大小的組件:LOG_BUFFER、DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE、DB_nK_CACHE_SIZE
5.SGA中分配內(nèi)存的單位:在SGA中動(dòng)態(tài)分配各組件大小的最小單元是顆粒,通常來(lái)說(shuō)在多數(shù)平臺(tái)上如果SGA的大小<=1G,則顆粒大小是4M,SGA>1G,則顆粒大小為16M(32位NT上SGA>1G,則顆粒大小為8M)
6.查詢V$SGAINFO或V$SGA_DYNAMIC_COMPONENTS看顆粒的大小,如果手動(dòng)給SGA中組件分配的內(nèi)存不是顆粒的倍數(shù),則DB實(shí)際給該組件分配(四舍五入到最小粒度的倍數(shù))大于分配值為其顆粒倍數(shù)的是小值
7.SGA_MAX_SIZE不能被動(dòng)態(tài)修改
三、啟用、配置ASMM:
從MSMM到ASSM:
1.獲得SGA_TARGET的值SELECT ((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)) "SGA_TARGET" FROM DUAL;
2.修改pfile中sga_target的值并重啟DB,或者ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
3.通過(guò)修改pfile中各自動(dòng)調(diào)優(yōu)組件對(duì)應(yīng)的初始化參數(shù)的值為0或最小分配量,或者alter system set %_size=0——————期望的最小值
從AMM到ASMM:
1.ALTER SYSTEM SET MEMORY_TARGET = 0
2.通過(guò)修改pfile中各自動(dòng)調(diào)優(yōu)組件對(duì)應(yīng)的初始化參數(shù)的值為0或最小分配量,或者alter system set %_size=0-期望的最小值
---------啟用ASMM后可以動(dòng)態(tài)調(diào)整相應(yīng)自動(dòng)調(diào)整組件的最小值,該值只限制該組件大小不能減小到此值以下,但不限制組件的最大值
---------動(dòng)態(tài)設(shè)置sga_target一個(gè)非0值之前,也就是啟用ASMM之前最好重啟DB,因?yàn)楣蚕沓夭荒鼙粍?dòng)態(tài)收縮,因?yàn)槠渲泻幸恍┐蜷_(kāi)的游標(biāo)、PL/SQL包及sql的執(zhí)行狀態(tài)
---------手動(dòng)調(diào)整大小的組件也可以動(dòng)態(tài)改變,但增加或減少的相應(yīng)值都從自動(dòng)調(diào)整大小組件中動(dòng)態(tài)獲取或釋放,而且設(shè)置的是一個(gè)精確的值
四、監(jiān)視、優(yōu)化ASMM:
SQL> select * from v$sga_target_advice order by sga_size;
五、建議參考(from Yong Huang):
配置總大小時(shí)參考如下:
在現(xiàn)在操作系統(tǒng)內(nèi)存比較充足的情況下,初始一般將shared pool設(shè)置為1至3G,其余的分配給buffer cache
10gASMM中db_cache_size至少2G
11g中將禁用AMM使用ASMM,因?yàn)槟軌蚴褂么蟮木彌_頁(yè)
感謝各位的閱讀,以上就是“AMM與ASMM相關(guān)知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)AMM與ASMM相關(guān)知識(shí)點(diǎn)有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前文章:AMM與ASMM相關(guān)知識(shí)點(diǎn)有哪些
網(wǎng)址分享:http://jinyejixie.com/article44/gpgohe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、域名注冊(cè)、企業(yè)建站、做網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)