Oracle 11gR2 ASM例項記憶體管理

不一樣的天空w發表於2018-05-11

    在以往的工作中我們的重點都是放在RDBMS例項的記憶體管理上,很少去關注ASM例項的記憶體配置,一方面是自動化的ASM真的很“自動化“,另一方面ASM的例項很少出現故障。這篇文章將簡單討論一下ASM例項的記憶體管理。

    首先需要確定ASM例項使用的是SPFILE,而不是使用PFILE,這樣可以幫助我們更好的管理ASM例項。
   
下面是ASM例項的記憶體結構的元件及其功能:
    共享池:用於後設資料資訊。
    大型池:用於並行操作。
    ASM快取記憶體:用於在重新平衡操作期間讀取和寫入塊。
    空閒記憶體:可用的未分配記憶體。

下面是最常見和最常用的ASM初始化引數配置:
INSTANCE_TYPE = ASM
ASM_POWER_LIMIT = 1
ASM_DISKSTRING = '/dev/sda1',/dev/sdb*'
ASM_DISKGROUPS= DATA2, FRA
ASM_PREFERRED_READ_FAILURE_GROUPS=DATA.FAILGROUP2
DIAGNOSTIC_DEST = /u01/app/grid
LARGE_POOL_SIZE = 12M
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

    在這裡只設定了大池的空間,沒有設定SGA_TARGET,也沒有設定MEMORY_TARGET,那麼ASM例項使用多大的SGA和PGA呢?

    Oracle ASM例項預設啟用AMM(Automatic Memory Management),即使當MEMORY_TARGET引數沒有明確的設定,ASM例項也能正常的使用。在Oracle 11.2 MEMORY_TARGET使用的預設值是272MB(SGA_TARGET 256MB,加上PGA_TARGET 16M),預設的配置對於大多數環境都是適用的。

如果使用過程中11.2 ASM例項的預設記憶體引數過小,可能會導致在ASM例項出現ORA-04031的錯誤。

    以下的公式將計算出ASM例項適合的MEMORY_TARGET值,這個查詢將確定shared_pool的增長,基於此能計算出最適合的MEMORY_TARGET:
new MEMORY_TARGET = current MEMORY_TARGET + 20 percent + growth of "shared pool"

如果出現了ORA-04031的錯誤,那麼在重啟ASM例項之前執行下面的SQL語句確定當前以及最新的shared pool值:
column "current value" form a15

select MT "current value", (1.2*MT) + difference "new value"
from (select value as MT from v$parameter where name='memory_target'),
     (select (max_size - current_size) as difference 
      from v$memory_dynamic_components where component='shared pool');

    下面我將貼出Oracle Exadata x4-2 eighth(Oracle RAC Database 11.2.0.4.6)上Oracle ASM例項的記憶體配置,可以為我們提供一些參考:

SQL> select name,round(bytes/1024/1024,2) mb from v$sgainfo;

 

NAME                                   MB

------------------------------ ----------

Fixed SGA Size                       2.15

ASM Cache Size                         32

Shared Pool Size                     1968

Large Pool Size                        32

Granule Size                           16

Maximum SGA Size                  2038.85

Startup overhead in Shared Poo     295.71

l

 

Free SGA Memory Available               0

 

8 rows selected. 


ASM例項的所有元件中,Shared Pool佔用的空間是最大的,所以在調整記憶體引數值時應該重點關注Shared Pool記憶體的變化。

SQL> show parameter large

 

NAME                                 TYPE                              VALUE

------------------------------------ --------------------------------- ------------------------------

large_pool_size                      big integer                       16M

use_large_pages                      string                            TRUE

SQL> show parameter sga

 

NAME                                 TYPE                              VALUE

------------------------------------ --------------------------------- ------------------------------

lock_sga                             boolean                           FALSE

sga_max_size                         big integer                       2G

sga_target                           big integer                       2G

SQL> show parameter spfile

 

NAME                                 TYPE                              VALUE

------------------------------------ --------------------------------- ------------------------------

spfile                               string                            +DBFS_DG/cluster-clu1/asmparam

                                                                       eterfile/registry.253.84996746

                                                                       5

SQL> create pfile='/tmp/asm_pfile.txt' from spfile;

 

File created.

 

SQL> !cat /tmp/asm_pfile.txt

+ASM1.asm_diskgroups='DATAC1','RECOC1'#Manual Mount

+ASM2.asm_diskgroups='DATAC1','RECOC1'#Manual Mount

*.asm_diskstring='o/*/*'

*.asm_power_limit=1

*.audit_syslog_level='local0.info'

+ASM1.cluster_interconnects='192.168.10.1:192.168.10.2'

+ASM2.cluster_interconnects='192.168.10.3:192.168.10.4'

*.diagnostic_dest='/u01/app/grid'

*.instance_type='asm'

*.large_pool_size=12M

*.memory_target=0

*.pga_aggregate_target=419430400

*.processes=1024

*.remote_listener='dm01-scan:1521'

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=2147483648


    參考文章:《ORA-04031 on ASM Instance - default memory parameters for 11.2 ASM instances are too low (文件 ID 1536039.1)

--end--

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

相關文章