学习ASM技术--条带化原理和rebalance

来源:互联网 发布:159魔天宫输出数据 编辑:程序博客网 时间:2024/06/06 12:27
一、条带化:
 
        ASM的条带化有两种:coarse和fine-gained。AU是最小分配单元,缺省是1M,每个AU缺省由8个128K条带空间组成。
        
         coarse条带化中一个extent映射为一个AU,缺省是1M大小,比如4个磁盘 
#0~#3,分配extent时候,第一个AU分配给disk0,第二个AU给disk1,依此顺推。所以该条带化适合连续的I/O读写,比如全表扫描表。

        Fined-gained条带化,一个AU中的8个128K条带空间,平均打散在磁盘上,也就是说,4个磁盘,1个AU是平均分布在4个磁盘,每个磁盘2个128K。适合于对数据读写延迟比较敏感的文件。如redo日志,控制文件,spfile等。

        10g版本AU和条带设置参数:_asm_ausize和_asm_stripesize,11g版本数据库在创建diskgroup时候,可以设置attribute 'au_size' = '16M'。

 二、Rebalance

        从diskgroup中添加或删除disk时候,将触发RBAL进程创建rebalance计划,并计算执行Rebalance所需要时间和工作要求,然后发消息给ASM Reblance (ARBx)进程处理该请求。ARBx进程的数量由参数ASM_POWER_LIMIT决定。COD (Continuting Operation Directory)用于记录rebalances情况。如果rebalance失败,在重启instance时候,将从COD读取记录,重新启动rebalance。ARBx进程对每个extents进行locked, relocated和unlocked操作,执行过程中可以参考v$asm_operation视图。

     ASM_POWER_LIMIT范围是0~11,0:表示不进行rebalance,值越大, rebalance速度越快。

       在进行rebalance时候要注意以下几点:
      
      1、每个disk的大小必须是相同,如果存在一个小盘,因为rebalance将对每个盘的分配相同比例的空间,可能造成rebalance时候空间不足。

      2、rebalance仅仅在diskgroup发生改变时候才进行的,并不是定时执行

      3、如果磁盘大小一样,仍然没有进行rebalance,需要查看asm_power_limit

      4、如果rebalance执行过程中,server宕机,重启后会自动进行rebalance

      5、影响rebalance速度因素有很多,最重要是I/O子系统

      6、如果执行过程中,空闲空间不足,造成rebalance失败,将出现ORA-15041错误,需要再添加disk,。

      7、如果需要频繁添加disk,每一次都可能造成数据的频繁移动,为提高效率,最好批量添加。

     从老的磁盘阵列切换和迁移disk到新的磁盘阵列命令如下:

SQL> alter diskgroup add disk '/dev/xxx/xxx' 
           drop disk [disk_name] rebalance power 8;
0 0
原创粉丝点击