日期:2014-05-16  浏览次数:20536 次

Oracle 11g 新特性 -- ASM 增强 说明

 

Oracle 的ASM 是一块大内容,之前也零散的整理了一下,链接如下:

 

Oracle ASM 详解

http://blog.csdn.net/tianlesoftware/article/details/5314541

 

Oracle ASM 系列 小结

http://blog.csdn.net/tianlesoftware/article/details/6364422

 

远程客户端 访问 ASM 实例

http://blog.csdn.net/tianlesoftware/article/details/5901749

 

Oracle RACASM disk header 备份 恢复 与 重建 示例说明

http://blog.csdn.net/tianlesoftware/article/details/6743677

 

Oracle 使用BBED 查看 ASM Disk Header 内容

http://blog.csdn.net/tianlesoftware/article/details/6739369

 

Oracle ASM 相关的视图(V$) 和 数据字典(X$)

http://blog.csdn.net/tianlesoftware/article/details/6733039

 

Oracle RACASM 实例 从10.2.0.1 升级到 10.2.0.4 说明

http://blog.csdn.net/tianlesoftware/article/details/6416036

 

OracleDatabase 11gR1 和 10gR2 ASM Best Practices 说明文档

http://blog.csdn.net/tianlesoftware/article/details/6302304

 

RAC 修改 ASM实例名 的步骤

http://blog.csdn.net/tianlesoftware/article/details/6275827

 

 

这篇看一下Oracle 11g中ASM的增强,内容摘自Oracle 11g OCP 教材。 回头抽空在对ASM 系列做一个总结。

 

一.  ASM 快速镜像再同步(ASMFast Mirror Resync)

1.1 无ASM快速镜像再同步时

每当ASM 无法向分配给某个磁盘的区执行写入操作时,就会使该磁盘脱机,同时会在其它磁盘上至少写入一个此区(ASM 数据区)的镜像副本(如果相应的磁盘组使用了ASM 冗余)。

使用OracleDatabase 10g 时,ASM 会假定脱机磁盘只包含过时数据,因此不再从此类磁盘中读取数据。磁盘脱机后不久,ASM 就会使用冗余区副本在磁盘组中的剩余磁盘上重新创建分配给磁盘的区(ASM 数据区),将脱机的磁盘从磁盘组中删除。此进程是一项开销相对较大的操作,可能要花费几小时来完成。

如果磁盘故障只是临时性的(如电缆、主机总线适配器、控制器故障或磁盘的电源中断),则必须在临时故障修复后重新添加磁盘。但是,将删除的磁盘重新添加回磁盘组还需要将区(ASM 数据区)迁回磁盘,因此增加了成本。

 

 

1.2 ASM 快速镜像再同步

1.2.1 概述

ASM 快速镜像再同步会显著减少重新同步临时故障磁盘所需的时间。如果某个磁盘因临时故障而脱机,ASM 将跟踪在中断期间发生修改的区。临时故障被修复后,ASM 可以快速地仅重新同步在中断期间受到影响的ASM 磁盘区。此功能假定受到影响的ASM磁盘内容未发生损坏或修改。

某个ASM 磁盘路径出现故障时,如果您已设置了相应磁盘组的DISK_REPAIR_TIME 属性,则ASM 磁盘会脱机,但不会被删除。此属性的设置确定了ASM 可容忍的磁盘中断持续时间;如果中断在此时间范围内,则修复完成后仍可重新同步。

注:跟踪机制对每个已修改的区使用一个位,这样可确保跟踪机制非常高效。

 

 

1.2.2 设置ASM 快速镜像再同步

请按磁盘组设置此功能。可以在创建磁盘组后使用ALTER DISKGROUP 命令完成此操作。使用一个类似以下命令的命令启用ASM 快速镜像再同步:

ALTER DISKGROUPSET ATTRIBUTE 'DISK_REPAIR_TIME'='2D4H30M'

 

在修复了磁盘后,运行SQL 语句ALTER DISKGROUP ONLINE DISK。此语句可使修复的磁盘组重新联机以启用写操作,这样便不会丢失新的写入内容。此语句还会启动一个过程,以复制在其冗余副本上标记为过时的所有区。不能将ONLINE 语句用于已经删除的磁盘。

 

可以通过查询V$ASM_ATTRIBUTE视图来查看当前的属性值。

通过查询V$ASM_DISK 或V$ASM_DISK_IOSTAT 的REPAIR_TIMER 列,可以确定ASM 删除某个脱机磁盘前剩余的时间。此外,V$ASM_OPERATION 中将出现一个与磁盘再同步操作对应的行,其中的OPERATION 列设置为SYNC。

 

为了进行预防性维护,还可以使用SQL语句ALTER DISKGROUP OFFLINE DISK 手动使ASM 磁盘脱机。使用此命令可以指定一个计时器,以覆盖在磁盘组级别定义的计时器。完成维护后,使用ALTER DISKGROUP ONLINE DISK 语句使磁盘重新联机。

如果无法修复处于脱机状态的故障组,则可使用带FORCE 选项的ALTER DISKGROUP DROP DISKS INFAILGROUP 命令,这样便可以确保根据数据的冗余副本重新构建原先存储在这些磁盘上的数据,并将其存储在同一磁盘组中的其它磁盘上。

注:仅当装载了磁盘组时才计算时间。而且,更改DISK_REPAIR_TIME 的值不会影响以前脱机的磁盘。DISK_REPAIR_TIME 的默认设置3.6 小时对多数环境来说应当足够了。

 

 

二.  ASM 首选镜像读取

2.1 概述

在Oracle Database10g 中配置ASM 故障组时,ASM 将始终读取镜像区的主副本。让节点从最靠近该节点的故障组区(即使是辅助区)读取数据效率可能更高些。在扩展的集群配置(节点跨多个站点分布)中,这种情况尤其明显;在这种情况下,从区的本地副本读取数据可以提高性能。

 

使用OracleDatabase 11g 时,通过使用新的初始化参数ASM_PREFERRED_READ_FAILURE_GROUPS指定首选镜像读取名称列表来配置首选镜像读取,可以做到这一点。这些故障组中的磁盘将成为首选读取磁盘。这样一来,每个节点都可以从其本地磁盘读取数据了。这样不但可以提高效率和性能,还可以降低网络通信量。该参数的