代码改变世界

ASM磁盘组扩容流程

2016-11-26 12:43  AlfredZhao  阅读(...)  评论(...编辑  收藏

环境:RHEL 6.5 + GI 11.2.0.4 + Oracle 11.2.0.4

1.确认磁盘权限正确

如果是RAC,需要确认各个节点都认出磁盘,且权限正确。
一般磁盘是grid:asmadmin属主,660权限。

2.图形界面配置


直接使用VNC,稳定;

或者使用Secure CRT + Xmanager4 passive模式

需要注意DISPLAY的变量值是否正确
echo $DISPLAY
正确的值应该是:
Secure CRT所在主机的IP地址:passive模式显示的N.N

例如:
export DISPLAY=192.168.56.1:0.0

3.启用asmca配置

asmca

先确认本次需要添加哪些盘,然后创建一个测试磁盘组TESTDG,成功之后,再将测试磁盘组TESTDG及其内容删除;
然后扩容就是右键本次要扩容的ASM磁盘组,选择add disk添加磁盘,一次性添加,最终返回成功添加。

4.修改磁盘组rebalance power级别

添加完磁盘到磁盘组后,需要时间来同步。

alter diskgroup datadg rebalance power 5;
这里rebalance power的级别从1到11中选择一个数值;数值越大,rebalance速度越快,对现有运行系统影响也越大。需要根据当时业务权衡选择适合的级别;
该命令只对本次rebalance操作有效。

如果命令行执行ASM磁盘组扩容操作就是下面这样:

--新建TESTDG 先把本次添加的磁盘测试下可用;
CREATE DISKGROUP TESTDG EXTERNAL REDUNDANCY DISK '/dev/raw/raw26', '/dev/raw/raw27', '/dev/raw/raw28', '/dev/raw/raw29', '/dev/raw/raw30', '/dev/raw/raw31', '/dev/raw/raw32', '/dev/raw/raw33', '/dev/raw/raw34', '/dev/raw/raw35', '/dev/raw/raw36', '/dev/raw/raw37', '/dev/raw/raw38', '/dev/raw/raw39', '/dev/raw/raw40' ATTRIBUTE 'compatible.asm'='11.2';
DROP DISKGROUP TESTDG INCLUDING CONTENTS;

--磁盘组DATADG扩容 (15块一起加,rebalance power 选择5)
SQL> alter diskgroup DATADG add disk '/dev/raw/raw26', '/dev/raw/raw27', '/dev/raw/raw28', '/dev/raw/raw29', '/dev/raw/raw30', '/dev/raw/raw31', '/dev/raw/raw32', '/dev/raw/raw33', '/dev/raw/raw34', '/dev/raw/raw35', '/dev/raw/raw36', '/dev/raw/raw37', '/dev/raw/raw38', '/dev/raw/raw39', '/dev/raw/raw40' rebalance power 5;

但是同事的经验告诉我最好图形界面操作,命令操作之前有人出过问题。
所以对于ASM磁盘组扩容,在能用图形的环境还是用图形来加,既简单又不容易出错。

5.监控磁盘组rebalance完成情况

查看视图v$asm_operation看rebalance进展情况:

select * from v$asm_operation;

当执行上述查询没有结果输出时,证明已经ASM磁盘组已经rebalance完毕。