? ? 11g 中新增MEMORY_MAX_TARGET參數(shù),此參數(shù)一出現(xiàn)就如在10g中第一次出現(xiàn)SGA_MAX_SIZE參數(shù)一樣給人以耳目一新的感覺。memory_max_target是設(shè)定Oracle能占OS多大的內(nèi)存空間,一個(gè)是Oracle SGA區(qū)最大能占多大內(nèi)存空間。無疑在11gOracle又向自動(dòng)管理內(nèi)存更進(jìn)一步。
創(chuàng)新互聯(lián)成立于2013年,公司自成立以來始終致力于為企業(yè)提供官網(wǎng)建設(shè)、移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)開發(fā)(微信小程序開發(fā)、手機(jī)網(wǎng)站建設(shè)、成都app軟件開發(fā)等),并且包含互聯(lián)網(wǎng)基礎(chǔ)服務(wù)(域名、主機(jī)服務(wù)、企業(yè)郵箱、網(wǎng)絡(luò)營(yíng)銷等)應(yīng)用服務(wù);以先進(jìn)完善的建站體系及不斷開拓創(chuàng)新的精神理念,幫助企業(yè)客戶實(shí)現(xiàn)互聯(lián)網(wǎng)業(yè)務(wù),嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致贊譽(yù)。
? ? 10g 的sga_max_size是動(dòng)態(tài)分配 Shared Pool Size,database buffer cache,large pool,javapool,redo log buffer大小的,只是根據(jù)Oracle運(yùn)行狀況來重新分配SGA各內(nèi)存塊的大小。PGA在10g中需要單獨(dú)設(shè)定.
? ? 11gMEMORY_MAX_TARGET 參數(shù)包含兩部分內(nèi)存,一個(gè)System global area(SGA),另一個(gè) system globalarea(PGA)。很顯然在11g中可已經(jīng)將PGA和SGA一起動(dòng)態(tài)管理了。
下面來看看在11g 中Memory_target設(shè)置和不設(shè)置對(duì)SGA/PGA 的影響:
A:如果Memory_target 設(shè)置為非0值(下面有四種情況來對(duì)SGA 和PGA 的大小進(jìn)行分配)
1)sga_target 和pga_aggregate_target 已經(jīng)設(shè)置大小如果Oracle 中 已經(jīng)設(shè)置了參數(shù)sga_target 和pga_aggregate_target,則這兩個(gè)參數(shù)將各自被分配為最小值最為它們的目標(biāo)值。
Memory_Target=SGA_TARGET+PGA_AGGREGATE_TARGET ,大小和 memory_max_size 一致。
2)sga_target 設(shè)置大小,pga_aggregate_target沒有設(shè)置大小 那么pga_aggregate_target初始化值=memory_target-sga_target
3)sga_target沒有設(shè)置大小,pga_aggregate_target設(shè)置大小那么sga_target 初始化值=memory_target-pga_aggregate_target
4)sga_target和pga_aggregate_target都沒有設(shè)置大小Oracle 11g中對(duì)這種sga_target和pga_aggregate_target都沒有設(shè)定大小的情況下,Oracle將對(duì)這兩個(gè)值沒有最小值和默認(rèn)值。Oracle 將根據(jù)數(shù)據(jù)庫(kù)運(yùn)行狀況進(jìn)行分配大小。但在數(shù)據(jù)庫(kù)啟動(dòng)是會(huì)有一個(gè)固定比例來分配:
sga_target =memory_target *60%
pga_aggregate_target=memory_target *40%
B:如果Memory_target 沒有設(shè)置或=0(在11g中默認(rèn)為0)
11g中默認(rèn)為0則初始狀態(tài)下取消了Memory_target的作用,完全和10g在內(nèi)存管理上一致,完全向下兼容。(也有三種情況來對(duì)SGA和PGA的大小進(jìn)行分配)
1)SGA_TARGET設(shè)置值,則自動(dòng)調(diào)節(jié)SGA中的shared pool,buffer cache,redolog buffer,javapool,larger pool等內(nèi)存空間的大小。PGA則依賴pga_aggregate_target的大小。sga和pga不能自動(dòng)增長(zhǎng)和自動(dòng)縮小。
2)SGA_target 和PGA_AGGREGATE_TARGET都沒有設(shè)置
SGA 中的各組件大小都要明確設(shè)定,不能自動(dòng)調(diào)整各組建大小。PGA不能自動(dòng)增長(zhǎng)和收縮。
3)MEMORY_MAX_TARGET設(shè)置而MEMORY_TARGET=0 這種情況先和10g一樣,不做說明在11g中可以使用下面看各組件的值.
SQL>?show?parameter?target NAME????????????????????????????TYPE???VALUE ------------------------?-------------------------------- archive_lag_target?????????????????????integer?0 db_flashback_retention_target??????????integer?1440 fast_start_io_target???????????????????integer?0 fast_start_mttr_target?????????????????integer?0 memory_max_target???????????????big????integer?1024M memory_target???????????????????big????integer?1024M pga_aggregate_target????????????big????integer?0 sga_target??????????????????????big????integer?0
如果需要監(jiān)視Memory_target 的狀況則可以使用下面三個(gè)動(dòng)態(tài)試圖: V$MEMORY_DYNAMIC_COMPONENTS
V$MEMORY_RESIZE_OPS
v$memory_target_advice
使用下面Command 來調(diào)節(jié)大?。?/p>
SQL>ALTER?SYSTEM?SET?MEMORY_MAX_TARGET?=1024M?SCOPE?=?SPFILE;?SQL>ALTER?SYSTEM?SET?MEMORY_TARGET?=?1024M?SCOPE?=SPFILE; SQL>ALTER?SYSTEM?SET?SGA_TARGET?=0?SCOPE?=SPFILE; SQL>ALTER?SYSTEM?SET?PGA_AGGREGATE_TARGET=?0?SCOPE?=?SPFILE;