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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20191128]11GR2 asm例項audit檔案.txtASM
- [20191115]oracle例項佔用記憶體計算.txtOracle記憶體
- 【Oracle】ASM例項安裝入門OracleASM
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- Oracle:記憶體設定注意事項Oracle記憶體
- 記憶體管理 記憶體管理概述記憶體
- oracle 11g自動記憶體管理Oracle記憶體
- 【ASM】Oracle asm刪除磁碟組注意事項ASMOracle
- 記憶體管理篇——實體記憶體的管理記憶體
- ORACLE11GR2 RAC解除安裝ASM例項步驟OracleASM
- RAC+DG(asm單例項)ASM單例
- 【記憶體管理】記憶體佈局記憶體
- 用例項帶你深入理解Java記憶體模型Java記憶體模型
- 【ASK_ORACLE】Relink ASM單例項資料庫詳細步驟OracleASM單例資料庫
- 記憶體管理兩部曲之實體記憶體管理記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- Go:記憶體管理與記憶體清理Go記憶體
- 【JVM之記憶體與垃圾回收篇】物件例項化記憶體佈局與訪問定位JVM記憶體物件
- ORACLE AMM 、ASMM 、自動記憶體管理(官方手冊)OracleASM記憶體
- 從Oracle資料庫故障到AIX記憶體管理Oracle資料庫AI記憶體
- JVM中java例項物件在記憶體中的佈局JVMJava物件記憶體
- 記憶體增強型例項規格族re4記憶體
- YOLO例項分割預測後刪除視訊記憶體YOLO記憶體
- 物件的例項化、記憶體佈局以及訪問定位物件記憶體
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- JavaScript 記憶體管理JavaScript記憶體
- iOS 記憶體管理iOS記憶體
- Android記憶體管理Android記憶體
- OC記憶體管理記憶體
- 記憶體管理-swMemoryGlobal記憶體
- Flink記憶體管理記憶體
- MySQL記憶體管理MySql記憶體
- Android native程式間通訊例項-binder結合共享記憶體Android記憶體
- JAVA服務例項記憶體高問題排查及解決Java記憶體
- 學習筆記(抽象基類、上下文管理、多型的應用、節約記憶體的例項)筆記抽象多型記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- Linux實體記憶體管理Linux記憶體