理解ASM(四)条带化原理和rebalance

本文介绍ASM的两种条带化方式:coarse和fine-gained,以及重平衡过程,包括RBAL进程如何创建rebalance计划、计算时间开销,并通过ARBn进程处理请求。此外还介绍了rebalance过程中的一些注意事项。
        ㈠ 条带化
       
           ASM的条带化有两种:coarse和fine-gained
           AU是最小空间分配单元,缺省是1M,每个AU缺省由8个128K条带空间组成。
           在coarse条带化中,一个磁盘对应一个AU
           所以该条带化适合连续的I/O读写,比如全表扫描表
           在fine-gained条带化里,一个AU中的8个128K条带空间,平均打散在磁盘上
           也就是说,4个磁盘,1个AU是平均分布在4个磁盘,每个磁盘2个128K
           适合于对数据读写延迟比较敏感的文件。如redo日志,控制文件,spfile等
          
          
        ㈡ 重平衡
       
           从diskgroup中添加或删除disk时候,将触发RBAL进程创建rebalance计划、计算时间开销
           而后、发消息给ARBn进程(ASM Reblance)处理该请求
           ARBn进程对每个extents进行locked, relocated和unlocked操作,执行过程中可以参考v$asm_operation视图
           ARBn进程的数量由参数ASM_POWER_LIMIT决定
           COD (Continuting Operation Directory)用于记录rebalances情况
           如果rebalance失败,在重启instance时候,将从COD读取记录,重新启动rebalance
           注意事项:
           ① rebalance仅仅在diskgroup发生改变时候才进行的,并不是定时执行
              如果rebalance执行过程中,server宕机,重启后会自动进行rebalance
     
           ② 每个disk的大小必须是相同,如果存在一个小盘,因为rebalance将对每个盘的分配相同比例的空间,可能造成rebalance时候空间不足
              如果执行过程中,空闲空间不足,造成rebalance失败,将出现ORA-15041错误,需要再添加disk
              如果需要频繁添加disk,每一次都可能造成数据的频繁移动,为提高效率,最好批量添加

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

              OCP题库有道题:


16. Immediately after adding a new disk to or removing an existing disk from an Automatic Storage Management (ASM) instance,
    you find that the performance of the database decreases initially, until the addition or removal process is completed. 
    Performance then gradually returns to normal levels.
    Which two activities could you perform to maintain a consistent performance of the database while adding or removing disks? (Choose two.) 
    
    
A. increase the number of checkpoint processes
 
B. define the POWER option while adding or removing the disks 

C. increase the number of DBWR processes by setting up a higher value for DB_WRITER_PROCESSES 

D. increase the number of slave database writer processes by setting up a higher value for DBWR_IO_SLAVES 

E. increase the number of ASM Rebalance processes by setting upa higher value for ASM_POWER_LIMIT during the disk addition or removal 

Answer: B, E 


### 查询 Oracle ASM 当前的条带化策略设置 在 Oracle ASM 中,条带化策略可以通过查询相关的视图参数来获取。以下是具体的方法: #### 1. 查看磁盘组的分配单元大小 分配单元(AU)大小决定了条带化的粒度。可以通过以下查询查看当前磁盘组的 AU 大小: ```sql SELECT name, allocation_unit_size FROM v$asm_diskgroup; ``` 此查询返回每个磁盘组的名称及其分配单元大小。分配单元大小直接影响条带化的粒度,较大的 AU 适合大块 I/O 操作,而较小的 AU 更适合随机 I/O 操作[^3]。 #### 2. 确认文件的条带化类型 Oracle ASM 使用两种条带化类型:细粒度条带化(Fine-grained Striping)粗粒度条带化(Coarse-grained Striping)。可以通过以下查询确认文件的条带化类型: ```sql SELECT group_number, file_number, striping FROM v$asm_file; ``` - 如果 `striping` 列的值为 `FINE`,则表示使用细粒度条带化。 - 如果 `striping` 列的值为 `COARSE`,则表示使用粗粒度条带化。 #### 3. 检查初始化参数 ASM条带化行为受某些初始化参数的影响,例如 `ASM_DISKSTRING` `ASM_DISKGROUPS`。这些参数可以通过以下查询查看: ```sql SHOW PARAMETER ASM_DISKSTRING; SHOW PARAMETER ASM_DISKGROUPS; ``` `ASM_DISKSTRING` 参数定义了 ASM 在启动时检查的磁盘范围[^3],而 `ASM_DISKGROUPS` 参数指定实例启动时要加载的磁盘组。 #### 4. 监控条带化效果 为了评估条带化策略的实际效果,可以使用以下视图监控 I/O 性能: - `V$ASM_DISK`: 显示每个磁盘的 I/O 统计信息。 - `V$ASM_CLIENT`: 显示连接到 ASM 实例的客户端信息。 - `V$ASM_OPERATION`: 显示正在进行的 ASM 操作的状态。 例如,以下查询可以显示每个磁盘的读写延迟: ```sql SELECT path, read_mb, write_mb, avg_read_lat, avg_write_lat FROM v$asm_disk; ``` ### 示例代码 以下是一个完整的示例,展示如何查询磁盘组的条带化策略: ```sql -- 查询磁盘组的分配单元大小 SELECT name, allocation_unit_size FROM v$asm_diskgroup; -- 查询文件的条带化类型 SELECT group_number, file_number, striping FROM v$asm_file; -- 查询 ASM_DISKSTRING 参数 SHOW PARAMETER ASM_DISKSTRING; -- 查询 ASM_DISKGROUPS 参数 SHOW PARAMETER ASM_DISKGROUPS; -- 监控磁盘的 I/O 性能 SELECT path, read_mb, write_mb, avg_read_lat, avg_write_lat FROM v$asm_disk; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值