ASMM (Auto Shared Memory Manangement)
Oracle只需要设置一个SGA总大小,10g会根据系统负载变化调节各内存组件大小。
开启ASMM, 需要设置sga_target 及 statistics_level=typical/all 即可(basic表示关闭asmm)。
ASMM只调整5个主要的内存池: buffer cache, shared pool, large pool, java pool, stream pool,
其他仍然需要手工调整(比如 log buffer,db_keep_cache_size 等)。
比如log buffer=3M, db_keep_cache_size 为100M , SGA大小为800M, 那么可以自由调整的5个内存池
的中总大小是 800-3-100=697M .
MMAN(Memory Manager后台进程): 每隔很短时间询问Oracle各内存组件advisor(顾问),然后根据建议
值自动调整各内存组件,如果使用spfile还会将顾问得出的建议值写入spfile(参数以两个下划线开头
__), 作为下次启动值大小。
如果启动了ASMM, 又手工设置了某参数为非零,Oracle会以手工设置的值为自动调整的最小值。
例如,手工设置了60M, 而MMAN自动调整的 __shared_pool_size为150M, 60M变成ASMM下共享内存的下限。
若手工设置200M, 则shared pool立即扩展,从__shared_pool_size=150M扩展到200M, 同时200M作为下限。
相关视图: v$sga_dynamic_components .
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29654823/viewspace-1397523/ ,如需转载,请注明出处,否则将追究法律责任。