天天看点

Oracle 11g AMM设置

最近在部署ORACLE时,部署人员对PGA和SGA设置一筹莫展,其实可以用Oracle 11g的AMM的(默认是开启的)。我们在安装过程中,指定Oracle使用内存的百分比,这个取值就作为MEMORY_TARGET和MEMORY_MAX_TARGET的初始取值使用。如果这两个参数设置为非零取值,那么Oracle就是采用AMM管理策略的。同时,如果我们设置这两个参数为0,则AMM自动关闭。对应的SGA_TARGET、PGA_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管理,则需要修改对应参数,如下:

修改系统参数,将sga和pga的target值设置为0,memory的target设置非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