Oracle 11gR2 ASM例項記憶體管理
在以往的工作中我們的重點都是放在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2 Day DBA-管理Oracle例項-管理記憶體-關於記憶體管理Oracle記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- oracle 例項記憶體結構Oracle記憶體
- 2 Day DBA-管理Oracle例項-關於例項記憶體結構Oracle記憶體
- Oracle 11.2.0.3 管理ASM例項OracleASM
- Oracle 11.2.0.3管理ASM例項OracleASM
- 管理 ASM 例項ASM
- oracle 11gR2 配置goldengate連線asm例項OracleGoASM
- oracle例項記憶體(SGA和PGA)調整Oracle記憶體
- oracle 11gR2 asm例項 不能啟動處理方法OracleASM
- Pooled Allocation(池式分配)例項——Keil 記憶體管理記憶體
- 2 Day DBA-管理Oracle例項-關於例項記憶體結構-程式全域性區(PGA)Oracle記憶體
- Oracle 記憶體管理Oracle記憶體
- 2 Day DBA-管理Oracle例項-關於例項記憶體結構-系統全域性區(SGA)Oracle記憶體
- 不用ASMLIB建立11gr2 ASM例項ASM
- Oracle例項的程式結構和記憶體結構Oracle記憶體
- oracle 收集asm例項資訊OracleASM
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- Oracle 11g RAC的ASM例項記憶體引數被修改導致無法啟動OracleASM記憶體
- JS記憶體洩漏例項解析JS記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- ORACLE例項的程式結構和記憶體結構(轉)Oracle記憶體
- 11gR2修改Grid軟體ASM例項引數檔案位置ASM
- Oracle 記憶體管理方式Oracle記憶體
- 記憶體管理 記憶體管理概述記憶體
- 管理ORACLE例項Oracle
- ORACLE記憶體管理 之一 ORACLE PGAOracle記憶體
- OCP課程27:管理Ⅰ之管理ASM例項ASM
- 2 Day DBA-管理Oracle例項-Oracle例項和例項管理概覽Oracle
- 驗證11gR2 RAC中ASM例項通過gpnp profile獲得spfile資訊來啟動ASM例項ASM
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- ASM例項 10gR2升到11gR2ASM
- 【Oracle】ASM例項安裝入門OracleASM
- ORACLE 記憶體管理 之四 SGAOracle記憶體
- oracle的自動記憶體管理Oracle記憶體
- oracle記憶體結構與管理Oracle記憶體
- 記憶體洩露例項分析 -- Android記憶體優化第四彈記憶體洩露Android優化
- Oracle:記憶體設定注意事項Oracle記憶體