ASM实例结构和进程

来源:这里教程网 时间:2026-03-03 20:07:33 作者:

ASM 实例是 Oracle 实现对 ASM 磁盘组和磁盘管理的方式,就像数据库实例管理数据库一样,由内存结构和后台进程构成。

其中内存结构也是 SGA+PGA ,负责保存 ASM 磁盘组相关的定义信息和磁盘组的元数据;后台进程负责管理这些 ASM 的源数据,并与数据库实例的进程通信,为数据库提供存储服务。

ASM 实例要做的工作比起数据库实例来说简单多了,因为只需要管理 ASM 的元数据。

 

ASM 实例启动的 SPFILE 参数是保存在 ASM 磁盘组上的,一般都在OCR磁盘组中,可以用gpnp profile中找到。例如:

[grid@zjhz-xsora19c-paasb01 ~]$ gpnptool get

Warning: some command line parameters were defaulted. Resulting command line:

         /u01/app/grid/ghome/bin/gpnptool.bin get -o-

SPFile="+OCR/xs19c-cluster/ASMPARAMETERFILE/registry.253.1059315543"

 

1 、下面是几个 ASM 实例的常用初始化参数:

1 MEMORY_TARGET

2 processes ,因为 ASM 实例可能要为多个数据库服务,但是 150 肯定足够用了。

3 instance_type ,用于定义实例的类型, ASM 实例的话,应当设置为 ASM

4 asm_diskstring ,该参数指定了 ASM 实例搜索磁盘的路径,支持设置多个搜索路径。

5 asm_diskgroups ,该参数指定了 ASM 实例启动后,需要自动 mount 哪些磁盘组。(只包括数据盘的磁盘组,不用填 OCR 盘的磁盘组)

6 ASM_POWER_LIMIT ,指定磁盘组在 rebalance 时的并行度, 11.2.0.2 开始最高能设置 1024 ,默认为 1 ,如果设置为 0 ,那么磁盘组成员列表变化时,不会自动 rebalance

 

2 、内存结构

ASM 实例的内存结构和数据库实例基本相同,由 SGA PGA 构成。 SGA 包括 shared pool buffer cache large pool 等。

查看每个内存组件当前的占用情况

select component,current_size/1024/1024 m from v$memory_dynamic_components order by 2 desc;

 

3 、后台进程

ASM 实例的后台进程和数据库实例大致一样,但是由于 ASM 实例需要对磁盘组和 ASM 元数据管理,因此会有一些特有的后台进程,如下:

1 GMON(ASM DISK GROUP MONITOR) ,磁盘组监控进程。负责维护磁盘组中的各个磁盘状态的一致性,当磁盘组中发生成员变化时,该进程负责 offline online 磁盘。是 ASM 实例最重要的后台进程之一。

2 RBAL(ASM Rebalance Master) rebalance 的主进程,负责协调磁盘组的 rebalance 操作。具体平衡磁盘组 extent 操作由 ARBn 进程来完成。与数据库实例中的 RBAL 进程不一样,数据库实例中的 RBAL 进程负责为数据库管理 ASM 磁盘。

3 ASMB ,该进程负责和 ASM 实例进行通信,并为 ASM 的客户( asmcmd ,数据库实例, OCR )提供链接 ASM 实例的信息。

 

4 ASM 实例启动顺序

1 )从 gpnp profile 读取 ASM 的初始化参数文件,获得启动 ASM 实例必需的参数

2 )根据参数文件的设置分配 SGA 并启动后台进程

3 )根据初始换参数 asm_diskstring 搜索磁盘,挂载 ASM 磁盘组

相关推荐