Oracle 11G新特性--ASM 增强 说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一. 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指定首选镜像读取名称列表来配置首选镜像读取,可以做到这一点。这些故障组中的磁盘将成为首选读取磁盘。这样一来,每个节点都可以从其本地磁盘读取数据了。这样不但可以提高效率和性能,还可以降低网络通信量。该参数的设置取决于具体的实例。
2.2 设置
要配置此功能,请设置新的ASM_PREFERRED_READ_FAILURE_GROUPS初始化参数。此参数是一个多值参数,应包含一个带有逗号分隔的故障组名称列表的字符串。指定的每个故障组名称应以其磁盘组名称和一个“.”字符为前缀。此参数是动态参数,可以随时使用ALTER SYSTEM 命令进行修改。但是,该初始化参数仅对ASM实例有效。使用扩展集群时,该参数中指定的故障组只应包含对应实例的本地磁盘。
新的列PREFERRED_READ已被添加到V$ASM_DISK 视图中,使用单字符格式。如果磁盘所属的磁盘组属于首选读取故障组,则此列的值为Y。
要确定ASM 首选读取故障组的特定性能问题,请使用V$ASM_DISK_IOSTAT 视图。
此视图将显示每台ASM 客户机的磁盘输入/输出(I/O) 统计信息。如果从一个数据库实例中查询此视图,则仅显示此实例的行。
2.3 最佳方法
在实践中,扩展集群中只有数量有限的有效磁盘组配置。有效磁盘组配置会同时考虑磁盘组在扩展集群中的性能和可用性。下面是一些可能的示例:
对于一个包含两个站点的扩展集群,正常的冗余磁盘组应只有两个故障组;一个站点的所有本地磁盘都应属于相同的故障组。此外,每个实例只能指定一个故障组作为首选读取故障组。如果有两个以上的故障组,则ASM 不会对一个跨两个站点的虚拟区进行镜像。而且,如果具有两个以上故障组的站点关闭,则也会使磁盘组关闭。如果要创建的磁盘组是一个高冗余磁盘组,则应在每个站点及其本地磁盘上最多创建两个故障组,并将两个本地故障组都指定为本地实例的首选读取故障组。
对于包含三个站点的扩展集群,应使用含三个故障组的高冗余磁盘组。通过这种方式,ASM 可以保证每个虚拟区对于每个站点都有一个本地镜像副本,并且三个站点上的磁盘组都受到保护以避免重大灾难。