赞
踩
ASM动态重新平衡特性
在ASM环境中,有一个重要的特性叫做动态重新平衡(Rebalancing),即当ASM需要增加磁盘空间时,可将新的磁盘设备添加到磁盘组,ASM磁盘组会按照一定比例将数据从一个或多个已有的磁盘移动到新的磁盘,从而维持所有磁盘之间整体的I/O平衡。
这种特性也提供了将整个数据库从一组较慢的磁盘迁移到一组较快磁盘的迁移方法,而且整个过程数据库能保持联机状态。当重新平衡操作完成后,我们可以剔除较慢的磁盘组,保留较快磁盘的磁盘组,从而完成联机状态下的数据迁移。
动态重新平衡触发条件
Rebalancing触发条件:当ASM需要改变磁盘的配置时,比如往ASM当前磁盘组中添加新的磁盘成员(alter diskgroup data add disk '/dev/raw/raw7';),删除故障组的磁盘(alter diskgroup data drop disk 'name';),添加新的磁盘组或者删除旧的磁盘组等等,只要当数据库联机并且用户正在使用该数据库时,都将触发ASM进行动态的重新平衡。
当然也可以通过更改ASM初始参数ASM_POWER_LIMIT的值或使用ALTER DISKGROUP REBALANCE POWER ,可控制磁盘重平衡的速度及对运行数据库I/O的影响。11.2.0.2版本以上,ASM_POWER_LIMIT和POWER的取值范围是0-1024,数值越大并发越高,重平衡速度也越快,后台I/O消耗越大。
使用ASM_POWER_LiMIT 调整rebalance 并发,asm_power_limit 默认值为1,若设置0,则为禁止rebalancing。
ASM动态重平衡总结
ASM rebalance重平衡是以文件为基本操作单位的,在arb进程的trc文件可以观察到,如果ASM存储的配置改变,一个正在进行的REBALANCE可能会被重启。或是人为导致了重平衡的失败,那么需要手工的触发重平衡,从上次断开的位置继续进行。在同一个集群中,每个实例只能有一个磁盘组在做重平衡操作。如果同时指定多个磁盘组做重平衡,那么ASM会尽量把重平衡动作在集群中可用节点上并行执行,如果没有其他可用节点了,那么就会串行执行。重平衡过程中,如果遇到ASM实例重启,那么实例起来后重平衡操作会继续进行。在执行ALTER DISKGROUP 命令对磁盘进行添加、删除、调整大小时,可以指定REBALANCE子句,以及相关的POWER值、WAIT/NOWAIT选项。
ORACLE ASM REBALANCE的这个特性,为我们进行比如oracle RAC存储升级,在不停数据库的情况,将数据库数据文件从旧设备迁移到新设备,提供了一个可靠的方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。