在oracle 11G中的自动内存管理是通过新参数MEMORY_TARGET来代替PGA和SGA的配置,ORACLE在运行过程中会自动调节PGA和SGA的大小,MEMORY_TARGET参数可支持动态修改,同样的MEMORY_TARGET有一个限制最大内存分配的参数:MEMORY_MAX_TARGET.
配置该参数:
1)DBCA创建数据库的过程中可直接设置MEMORY_TARGET参数
2)数据库创建完成后,可通过以下方式手动配置MEMORY_TARGET
ALTER SYSTEM SET MEMORY_TARGET = 33024M;
ALTER SYSTEM SET SGA_TARGET = 0;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0;
后两步是禁用SGA和PGA的自动管理. 让ORACLE对内存实行自动调节.
还可以设置MEMORY_MAX_TARGET参数限制Oracle可自动分配的最大内存.该参数不能动态调整,调整后需要重新启动数据库.
设置MEMORY_MAX_TARGET参数的方法:
ALTER SYSTEM SET MEMROY_MAX_TARGET= 33024M SCOPE=SPFILE;
查看MEMORY_TARGET内存的设置情况:
sys@BIDB> 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
parallel_servers_target integer 320
memory_max_target big integer 33024M
memory_target big integer 33024M
pga_aggregate_target big integer 0
sga_target big integer 0