memory_max_target,memory_target,pga_aggregate_target,sga_target

tolywang發表於2011-07-12

hunetapp$sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 12 09:34:09 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

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 5G
memory_target                        big integer 5G

parallel_servers_target              integer     256
pga_aggregate_target                 big integer 0
sga_target                           big integer 0

SQL> 

 

1.    設定11g 的 memory_max_target  時請注意你的 /etc/fstab中的   tmpfs    /dev/shm  要比memory_max_target 大, 否者會報錯 ORA-00845: MEMORY_TARGET not supported on this system 。

2.    如果設定了LOCK_SGA,  那麼是不能設定自動記憶體管理 (AMM) 的,即不能使用 memory_target 和memory_max_target  引數。

3.   在Linux上,AMM引數 memory_target  和 memory_max_target  不能和 Huge Pages同時使用。 

4.   自動記憶體管理 (AMM) 是用兩個初始化引數進行配置的:
  MEMORY_TARGET:   動態控制SGA和PGA時,Oracle總共可以使用的共享記憶體大小,這個引數是動態的,因此提供給Oracle的記憶體總量是可以動態增大,也可以動態減小的。它不能超過MEMORY_MAX_TARGET引數設定的大小。預設值是0。
  MEMORY_MAX_TARGET:這個引數定義了MEMORY_TARGET最大可以達到而不用重啟例項的值,如果沒有設定MEMORY_MAX_TARGET值,預設等於MEMORY_TARGET的值。


  使用動態記憶體管理時,SGA_TARGET  和  PGA_AGGREGATE_TARGET 代表它們各自記憶體區域的最小設定,要讓Oracle完全控制記憶體管理,  這兩個引數應該設定為0。

5.    如果設定了 MEMORY_MAX_TARGET = 4G ,   MEMORY_TARGET設定為2G,  那麼在開啟資料庫開始期間, Oracle記憶體分配 (預分配) 應該只是 2G,   如果2G不夠用, 會一直自動擴充套件 MEMORY_TARGET 的大小 , 最大隻能到 MEMORY_MAX_TARGET  。   如果開始就將 MEMORY_TARGET 設定為4G,   即直接等於MEMORY_MAX_TARGET  ,   那麼開啟資料庫Oracle佔用記憶體 (預分配) 就是4G . 

 

參考資料: 

There are some other issues to be aware of when using AMM. First the memory_target and memory_max_target parameters cannot be used when LOCK_SGA has been set. Also memory_target and memory_max_target cannot be used in conjunction with huge pages on Linux. Additionally, some platforms can give you trouble about setting memory_target. For example, on Linux you need to make sure that /dev/shm (or it's equivalent) is allocated with an amount of space slightly larger than what you wish to set the memory_target value too. Failure to do this will result in the following error:

ORA-00845: MEMORY_TARGET not supported on this system.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-701963/,如需轉載,請註明出處,否則將追究法律責任。

相關文章