Oracle一直不停的在为Orace数据库的自动化管理努力着,11G中的自动内存管理是Oracle数据库中又一新的里程碑,通过新参数MEMORY_TARGET
来代替PGA和SGA的配置,ORACLE在运行过程中会自动调节PGA和SGA的大小,跟10G中SGA自动管理的方法基本一直。MEMORY_TARGET参数
可支持动态修改,同样的MEMORY_TARGET也有一个限制最大内存分配的参数:MEMORY_MAX_TARGET,这个跟SGA_TARGET和
SGA_MAX_TARGET的关系一样。
启用内存自动管理
- DBCA创建数据库的过程中可直接设置MEMORY_TARGET参数
- 数据库创建完成后,可通过以下方式手动配置MEMORY_TARGET
ALTER SYSTEM SET MEMORY_TARGET = 256M;
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=256M SCOPE=SPFILE;
查看MEMORY_TARGET内存的设置情况:
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 256M
memory_target big integer 256M
pga_aggregate_target big integer 0
sga_target big integer 0