AMM是Automatic Memory Management的缩写,表示自动内存管理。
从Oracle 9i通过PGA_AGGREGATE_TARGET参数实现PGA自动管理开始,
Oracle 10g通过SGA_TARGET和SGA_MAX_SIZE参数实现了SGA的自动管理,
Oracle 11g更是惊人地实现了数据库所有内存块的全自动化管理(Automatic Memory Management,AMM),实现SGA+PGA自动管理。
如果DBA 真的想偷懒的话,只需要设定两个参数就可以把烦心的事情都交给 Oracle自行处理,PGA 与 SGA 一起搞定,这两个参数分别是:MEMORY_TARGET和MEMORY_MAX_TARGET
memory_max_target表示可用的最大内存值(动态参数)
memory_target表示在memory_max_target的范围内,有多少内存是可用于动态分配的,它应小于等于memory_max_target的值,静态参数,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
设置方法如下:
SQL> alter system set memory_max_target=3200M scope=spfile;
SQL> alter system set memory_target=3200M scope=spfile;
SQL> shutdown immediate;
SQL> startup;
其他内存参数如pga_aggregate_target、sga_max_size等,在自动内存管理的情况下是不需要设置的,等于0即可,