Oracle 11g AMM设置

最近在部署ORACLE时,部署人员对PGA和SGA设置一筹莫展,其实可以用Oracle 11gAMM的(默认是开启的)。我们在安装过程中,指定Oracle使用内存的百分比,这个取值就作为MEMORY_TARGETMEMORY_MAX_TARGET的初始取值使用。如果这两个参数设置为非零取值,那么Oracle就是采用AMM管理策略的。同时,如果我们设置这两个参数为0,则AMM自动关闭。对应的SGA_TARGETPGA_AGGREGATE_TARGET参数取值非零之后,Oracle自动退化使用ASMM特性。

数据库版本查看,

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

查看参数,通过查看内存4个参数,可以看出为AMM

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 24640M
memory_target                        big integer 24640M
parallel_servers_target              integer     32
pga_aggregate_target                 big integer 0

sga_target                           big integer 0


如果为ASMM管理,则需要修改对应参数,如下:

修改系统参数,将sgapgatarget值设置为0memorytarget设置非0 

SQL> alter system set memory_max_target=300m scope=spfile;

System altered

 SQL> alter system set memory_target=300m scope=spfile;

System altered

 SQL> alter system set sga_target=0m scope=spfile;

System altered

 SQL> alter system set sga_max_size=0 scope=spfile;

System altered

 SQL> alter system set pga_aggregate_target=0 scope=spfile;

System altered