修改正在操作中的重新平衡能力
让我们从磁盘组 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.
磁盘组重新平衡操作分为三个阶段:
- 规划
- 文件盘区重定位
- 磁盘压缩
可以动态调整此参数,但是调整 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.
测试是这里的关键。