遇到這個報錯,就使用asmm一般先裝庫,再opatch到最新補丁,最後dbca建庫,物理記憶體大於4G不能用AMM只能用ASMM記憶體越大,全自動管理就越費勁,出錯概率就越高,記憶體抖動oracle的記憶體管理:9i PGA自動管理SGA手動管理,10g PGA自動管理 SGA自動管理(ASMM 自動共用內... ...
遇到這個報錯,就使用asmm
一般先裝庫,再opatch到最新補丁,最後dbca建庫,物理記憶體大於4G不能用AMM只能用ASMM
記憶體越大,全自動管理就越費勁,出錯概率就越高,記憶體抖動
oracle的記憶體管理:
9i PGA自動管理SGA手動管理,10g PGA自動管理 SGA自動管理(ASMM 自動共用記憶體管理),11g PGA SGA統一自動管理(AMM,自動記憶體管理),12c 18c 19c和11g一樣沒有變化
11g concepts有如下描述
Memory management involves maintaining optimal sizes for the Oracle instance memory structures as demands on the database change. Oracle Database manages memory based on the settings of memory-related initialization parameters. The basic options for memory management are as follows:
Automatic memory management
You specify the target size for instance memory. The database instance automatically tunes to the target memory size, redistributing memory as needed between the SGA and the instance PGA.
Automatic shared memory management
This management mode is partially automated. You set a target size for the SGA and then have the option of setting an aggregate target size for the PGA or managing PGA work areas individually.
Manual memory management
Instead of setting the total memory size, you set many initialization parameters to manage components of the SGA and instance PGA individually.
If you create a database with Database Configuration Assistant (DBCA) and choose the basic installation option, then automatic memory management is the default.
ASMM是10g引入的技術,實現SGA的自動管理,啟用後不再需要為每個記憶體組件設定值,如果同時啟用SGA_TARGET為0表示禁用ASMM,非0值表示啟用ASMM,但是在10gR1等早期版本,ASMM不夠成熟有較多bug
AMM自動化記憶體管理是11g引入的技術,實現了PGA和SGA的統一自動管理
由此在11g後,就組合出來5種記憶體管理形式
自動記憶體管理(AMM):memory_target=非0,是自動記憶體管理,如果初始化參數LOCK_SGA=TRUE,則AMM是不可用的
自動共用記憶體管理(ASMM):memory_target=0 且 sga_target=非0的情形下是自動記憶體管理
手工共用記憶體管理:memory_target=0 且 sga_target=0 指定share_pool_size、db_cache_size等sga參數
自動PGA管理:memory_target=0 且 workarea_size_policy=auto and PGA_AGGREGATE_TARGET=值
手工PGA管理:memory_target=0 且 workarea_size_policy=manal 然後指定SORT_AREA_SIZE等PGA參數,一般不使用手動管理PGA