asm 兼容性、asm 主要参数管理

ASM instance 与 Database instance 的版本兼容性说明

1. Oracle 11gR2 的ASM 支持11g和10g的数据库实例。但是在Oracle Clusterware 和Oracle ASM 之间,
Clusterware 的版本必须大于等于ASM 的版本。

2. 如果要使用Oracle 11.2 的数据库实例,那么ASM 实例的版本必须是11.2的。
即,ASM instance具有向下的兼容性,但向上就必须版本一致。

可以通过V$ASM_CLIENT 查看软件版本和compatible 版本的信息:
col SOFTWARE_VERSION for a20
col COMPATIBLE_VERSION for a20
select a.name,b.software_version,b.compatible_version from v$asm_client b,v$asm_diskgroup a where a.group_number = b.group_number;

说明:
SOFTWARE_VERSION 列显示的数据库的版本或者是ASM disk group对应的ASM instance 版本。
COMPATIBLE_VERSION 也上面一样,只不过它对应的compatible 参数的值。

ASM 实例的初始化参数

当ASM instance 查找初始化文件的时候,搜索的顺序如下:
1. GPnP(Grid Plug and Play) profile 中指定的本地位置。
默认的保存位置是:
$GRID_HOME/gpnp/$HOSTNAME/profile/peer/profile.xml
$GRID_HOME/gpnp/profile/peer/profile.xml(全局备份)

2. 如果GPnP profile中没有指定初始化文件的位置,然后搜索ASM Instance Home目录。这里会包含2种文件,SPFILE 和 PFILE,默认路径是:$ORACLE_HOME/dbs/spfile+ASM.ora
GPnP profile文件保存的是集群的配置信息。这个XML 文件里记录了如下信息:
1.网络接口和IP地址(公网和私网)
2.ASM diskstring和spfile信息

注意:Oracle不支持手动修改profile.xml文件,直接对它的修改可能导致无法修复的问题,最终导致在所有节点重建Clusterware。
RAC环境千万不能执行 create spfile from pfile 。 (因为创建出来的文件默认位置在节点本地,且更新了gpnp profile,集群访问不到)

ASM 实例的自动内存管理机制

默认情况下,ASM 实例会启动自动内存管理,即使没有指定MEMORY_TARGET参数。 MEMORY_TARGET 参数的默认值在大部分情况下都合适。 这个也是ASM 内存管理这块唯一一个需要设置的参数。
Oracle 强烈建议对ASM 使用自动内存管理。

如果没有指定MEMORY_TARGET 参数,但指定了其他与内存相关的参数,Oracle 内部会自动根据这些参数计算出合适的值来赋给MEMORY_TARGET。

建议设置的 ASM 参数

1 ASM_DISKGROUPS
ASM_DISKGROUPS 参数指定ASM 实例在启动时需要挂载的disk group 列表。 在我们启动ASM 实例时指定NOMOUNT 选项或者我们执行ALTER DISKGROUP ALL MOUNT时,Oracle 会忽略ASM_DISKGROUPS参数的设置。

ASM_DISKGROUPS 参数是动态参数,如果我们使用SPFILE 来启动ASM 实例,那么我们就不需要设置ASM_DISKGROUPS参数,在我们成功创建或者MOUNT disk group之后,ASM 会自动把disk group 的信息添加到这个参数中。
同样,在我们drop 或者dismount disk group 的时候,ASM 也会自动的从这个参数中移除相关的信息。

查看当前值:
SQL> show parameter asm_diskgroups
手工的进行设置:
ALTER SYSTEM SET ASM_DISKGROUPS = DATA, FRA;

2 ASM_DISKSTRING
ASM_DISKSTRING 参数用来执行ASM 实例discover的路径,如果有多个路径,那么用逗号进行分割,并且在路径中可以使用通配符。 在discover的过程中,只要匹配任意一个路径的disk都会被识别到,同一个disk 只能被匹配一次。
ASM_DISKSTRING 参数中字符串的格式有ASM library 和操作系统决定。

查看我们系统当前的值:
SQL> show parameter asm_diskstring
这个值是我们在创建ASM 实例的时候指定的,如果不指定,我们都看不到我们创建的raw设备。

3 ASM_POWER_LIMIT
ASM_POWER_LIMIT 参数指定disk group rebalance的default power。
如果disk group 的compatible.asm属性大于11.2.0.2,那么该参数的值范围是0 到 1024.
如果 disk group的compatible.asm属性小于11.2.0.2,那么该参数值只能从0到11.

该参数设置的越高,rebalancing 操作就会进行的越快,但是带来的影响就是需要高IO ,也需要更多的rebalancing 进程来处理。

-- 查看compatible
col name for a20
col value for a20
select name,value from v$asm_attribute where name like '%asm%';

查看limit
SQL> show parameter limit

查看ASM rebalancing 操作:
SQL> select * from v$asm_operation;

将XXX 这个power改成3:
SQL> alter diskgroup xxx rebalance power 3;
Diskgroup altered.

速度查看:
SQL> select group_number, operation, state, power, est_minutes from v$asm_operation;

注意: rebalance 的进程是:asm_arb

 

posted on 2017-02-27 17:33  张冲andy  阅读(859)  评论(0编辑  收藏  举报

导航