Oracle12C重启asm实例,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--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值