天天看點

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