如何在线修改ASM再平衡能力
www. On IT Road .com

修改正在操作中的重新平衡能力

让我们从磁盘组 DATA 中删除一个磁盘:

SQL> alter diskgroup DATA drop disk data_disk01;
Diskgroup altered.

每当磁盘组中有重新平衡时,重新平衡过程 ARBn 将启动:

SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------
           1 REBAL WAIT          1          0          0          0

ASM alert.log:

Fri Dec 26 16:55:08 2008
NOTE: starting rebalance of group 1/0x8c6014a7 (DATA) at power 1
Starting background process ARB0
ARB0 started with pid=14, OS id=316
Fri Dec 26 16:55:08 2008
NOTE: assigning ARB0 to group 1/0x8c6014a7 (DATA)

如我们所见,重新平衡的功率为 1,因为它默认为参数 ASM_POWER_LIMIT。
运行 rebalance 命令后,正在运行的 rebalance 进程将停止,新的 rebalance 从进程将根据使用的 POWER 产生。

SQL> alter diskgroup dg1 rebalance power 8;
Diskgroup altered.

检查产生的 8 个新的重新平衡从属进程 (ARB0,....,ARB7)

SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------
           1 REBAL RUN           8          8          0        407          0

ASM alert.log :

Fri Dec 26 16:55:11 2008
SQL> alter diskgroup dg1 rebalance power 8 
NOTE: stopping process ARB0
Fri Dec 26 16:55:11 2008
NOTE: rebalance interrupted for group 1/0x8c6014a7 (DG1)
Fri Dec 26 16:55:11 2008
NOTE: PST update: grp = 1
NOTE: requesting all-instance PST refresh for group=1
Fri Dec 26 16:55:11 2008
NOTE: PST refresh pending for group 1/0x8c6014a7 (DG1)
SUCCESS: refreshed PST for 1/0x8c6014a7 (DG1)
Fri Dec 26 16:55:14 2008
NOTE: starting rebalance of group 1/0x8c6014a7 (DG1) at power 8
Starting background process ARB0
Starting background process ARB1
ARB0 started with pid=14, OS id=1628
Fri Dec 26 16:55:15 2008
Starting background process ARB2
ARB1 started with pid=15, OS id=1920
Fri Dec 26 16:55:15 2008
Starting background process ARB3
ARB2 started with pid=16, OS id=1964
Fri Dec 26 16:55:15 2008
Starting background process ARB4
ARB3 started with pid=17, OS id=1664
Fri Dec 26 16:55:15 2008
Starting background process ARB5
ARB4 started with pid=18, OS id=1836
Fri Dec 26 16:55:15 2008
Starting background process ARB6
ARB5 started with pid=19, OS id=1972
Fri Dec 26 16:55:15 2008
Starting background process ARB7
ARB6 started with pid=20, OS id=1800

ASM 重新平衡能力

每当添加/删除/调整磁盘大小时,ASM 就会开始重新平衡磁盘组中磁盘上的数据。
它进行再平衡的能力就是再平衡能力。
重新平衡功率默认为 ASM_POWER_LIMIT 初始化参数的值(默认值 = 1)。
限制越高,重新平衡操作完成的速度就越快。
较低的值会导致重新平衡需要更长的时间,但消耗更少的处理和 I/O 资源。
这使得这些资源可用于其他应用程序,例如数据库。
从 Oracle Database 11g 第 2 版 (11.2.0.2) 开始,如果 COMPATIBLE.ASM 磁盘组属性设置为 11.2.0.2 或者更高,则 ASM_POWER_LIMIT 参数的范围是 0 到 1024.
所有以前的版本的参数范围都是 0到 11.

磁盘组重新平衡操作分为三个阶段:

  1. 规划
  2. 文件盘区重定位
  3. 磁盘压缩

可以动态调整此参数,但是调整 ASM_POWER_LIMIT 只会影响未来的重新平衡。
它不会影响正在进行的重新平衡。
asm_power_limit 可以在 v$asm_operation 视图中找到。

SQL> show parameter limit
NAME                                 TYPE        VALUE
------------------------------------ ----------- -----
asm_power_limit                      integer     1

我应该增加多少能力?

重新平衡能力可以动态调整,例如:重新平衡期间。
如果使用默认能力的重新平衡“太慢”,则可以增加能力。
多少?
要回答这些问题,我们需要了解 I/O 负载、I/O 吞吐量以及最重要的系统可以承受的 I/O 限制。
如果我们不知道,功率可以增加到 5(使用'ALTER DISKGROUP ... REBALANCE POWER 5;')。
然后我们可以检查这是否有所不同。
我们是否应该使用再平衡能力更高?
同样,只要我们没有对数据库 I/O 性能产生不利影响,我们就可以继续提高能力。
但是我没有看到超过 30 次幂的太多改进。
请注意,对于 COMPATIBLE.ASM < 11.2.0.2 的磁盘组,功率可以达到 11,对于 COMPATIBLE.ASM=>11.2.0.2 的磁盘组,能力可以达到 1024.

测试是这里的关键。

日期:2020-09-17 00:11:38 来源:oir作者:oir