说明:
在原来DATA3的基础上添加一个4G磁盘,在线扩展,新的磁盘名字为DATA3_DISKI
步骤
1.检查磁盘信息是否正常
Disk /dev/sdi: 4127 MB, 4127195136 bytes
127 heads, 62 sectors/track, 1023 cylinders
Units = cylinders of 7874 * 512 = 4031488 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
SQL> col state format a10
SQL> col name format a15
SQL> col failgroup format a20
SQL> set line 200
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------- -------------- ---------- ---------- --------------- --------------------
NORMAL UNKNOWN 0 0
NORMAL UNKNOWN 3200 3105 DATA3_DISKH DATA3_DISKH
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 81920 81493 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
8 rows selected.
SQL>
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81493
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
5 DATA3 MOUNTED EXTERN 3200 3105
SQL>
col MODE_STATUS format a10
col status format a10
col name format a15
col PATH format a20
set linesize 200
select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
SQL> col MODE_STATUS format a10
SQL> col status format a10
SQL> col name format a15
SQL> col PATH format a20
SQL> set linesize 200
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MODE_STATU HEADER_STATUS MODE_STATU STATE TOTAL_MB FREE_MB NAME PATH
------------ ----------- ---------- ------------------------ ---------- ---------------- ---------- ---------- --------------- --------------------
0 0 ONLINE CANDIDATE ONLINE NORMAL 0 0 /dev/asm-diski
5 0 ONLINE MEMBER ONLINE NORMAL 3200 3105 DATA3_DISKH /dev/asm-diskh
3 0 ONLINE MEMBER ONLINE NORMAL 76800 3053 DATA_0000 /dev/asm-diske
1 0 ONLINE MEMBER ONLINE NORMAL 81920 81493 ARCH_0000 /dev/asm-diskf
4 1 ONLINE MEMBER ONLINE NORMAL 10240 9932 OCR_0001 /dev/asm-diskc
4 0 ONLINE MEMBER ONLINE NORMAL 10240 9932 OCR_0000 /dev/asm-diskb
4 2 ONLINE MEMBER ONLINE NORMAL 10240 9930 OCR_0002 /dev/asm-diskd
2 0 ONLINE MEMBER ONLINE NORMAL 53184 51030 DATA2_0000 /dev/asm-diskg
8 rows selected.
SQL> select failgroup, name,TOTAL_MB from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA3');
FAILGROUP NAME TOTAL_MB
------------------------------------------------------------ --------------- ----------
DATA3_DISKH DATA3_DISKH 3200 ###没有添加前的信息
SQL>
2.添加磁盘
现往磁盘组data3里添加1个新创建的ASM磁盘,并指定REBALANCE的速度10
alter diskgroup DATA3 add disk '/dev/asm-diski' name DATA3_DISKI rebalance power 10;、
Diskgroup altered.
3 查询ASM磁盘组状态
注意:REBALANCE过程根据数据量的大小不同完成时间也不一,可以针对当前系统情况指定合理的POWER值。
REBALANCE过程可以通过v$asm_operation视图来查看:
SQL> set line 150
SQL> col ERROR_CODE for a5
SQL> select * from v$asm_operation;
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- ----------- ----------------------------------------------------------------------------------------
5 REBAL WAIT 10
SQL>
REBALANCE完成后,查询v$asm_operation记录将消失:
SQL> select * from v$asm_operation;
4.添加ASM磁盘后的状态
节点一
col MODE_STATUS format a10
col status format a10
col name format a15
col PATH format a20
set linesize 200
select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
select failgroup, name,TOTAL_MB from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA3');
SQL> col MODE_STATUS format a10
SQL> col status format a10
SQL> col name format a15
SQL> col PATH format a20
SQL> set linesize 200
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MODE_STATU HEADER_STATUS MODE_STATU STATE TOTAL_MB FREE_MB NAME PATH
------------ ----------- ---------- ------------------------ ---------- ---------------- ---------- ---------- --------------- --------------------
5 1 ONLINE MEMBER ONLINE NORMAL 3936 3884 DATA3_DISKI /dev/asm-diski
5 0 ONLINE MEMBER ONLINE NORMAL 3200 3155 DATA3_DISKH /dev/asm-diskh
3 0 ONLINE MEMBER ONLINE NORMAL 76800 3053 DATA_0000 /dev/asm-diske
1 0 ONLINE MEMBER ONLINE NORMAL 81920 81493 ARCH_0000 /dev/asm-diskf
4 1 ONLINE MEMBER ONLINE NORMAL 10240 9932 OCR_0001 /dev/asm-diskc
4 0 ONLINE MEMBER ONLINE NORMAL 10240 9932 OCR_0000 /dev/asm-diskb
4 2 ONLINE MEMBER ONLINE NORMAL 10240 9930 OCR_0002 /dev/asm-diskd
2 0 ONLINE MEMBER ONLINE NORMAL 53184 51030 DATA2_0000 /dev/asm-diskg
8 rows selected.
SQL> select failgroup, name,TOTAL_MB from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA3');
FAILGROUP NAME TOTAL_MB
------------------------------------------------------------ --------------- ----------
DATA3_DISKI DATA3_DISKI 3936
DATA3_DISKH DATA3_DISKH 3200
SQL>
SQL> select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------------------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81493
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
5 DATA3 MOUNTED EXTERN 7136 7039 容量变大
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------------- -------------- ---------- ---------- --------------- ------------------------------------------------------------
NORMAL UNKNOWN 3936 3884 DATA3_DISKI DATA3_DISKI
NORMAL UNKNOWN 3200 3155 DATA3_DISKH DATA3_DISKH
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 81920 81493 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
8 rows selected.
SQL>
[grid@rac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.ARCH.dg ora....up.type ONLINE ONLINE rac1
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.DATA2.dg ora....up.type ONLINE ONLINE rac1
ora.DATA3.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora.OCR.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac1
ora.gnnt.db ora....se.type ONLINE ONLINE rac1
ora....nta.svc ora....ce.type ONLINE ONLINE rac2
ora....ntb.svc ora....ce.type ONLINE ONLINE rac2
ora....ect.svc ora....ce.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type ONLINE ONLINE rac1
[grid@rac1 ~]$
节点二
SQL> col MODE_STATUS format a10
SQL> col status format a10
SQL> col name format a15
SQL> col PATH format a20
SQL> set linesize 200
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
select failgroup, name,TOTAL_MB from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA3');
GROUP_NUMBER DISK_NUMBER MODE_STATU HEADER_STATUS MODE_STATU STATE TOTAL_MB FREE_MB NAME PATH
------------ ----------- ---------- ------------------------ ---------- ---------------- ---------- ---------- --------------- --------------------
5 1 ONLINE MEMBER ONLINE NORMAL 3936 3884 DATA3_DISKI /dev/asm-diski
5 0 ONLINE MEMBER ONLINE NORMAL 3200 3155 DATA3_DISKH /dev/asm-diskh
4 2 ONLINE MEMBER ONLINE NORMAL 10240 9930 OCR_0002 /dev/asm-diskd
2 0 ONLINE MEMBER ONLINE NORMAL 53184 51030 DATA2_0000 /dev/asm-diskg
1 0 ONLINE MEMBER ONLINE NORMAL 81920 81437 ARCH_0000 /dev/asm-diskf
3 0 ONLINE MEMBER ONLINE NORMAL 76800 3053 DATA_0000 /dev/asm-diske
4 1 ONLINE MEMBER ONLINE NORMAL 10240 9932 OCR_0001 /dev/asm-diskc
4 0 ONLINE MEMBER ONLINE NORMAL 10240 9932 OCR_0000 /dev/asm-diskb
8 rows selected.
SQL>
FAILGROUP NAME TOTAL_MB
------------------------------------------------------------ --------------- ----------
DATA3_DISKI DATA3_DISKI 3936
DATA3_DISKH DATA3_DISKH 3200
SQL>
SQL> select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ --------------- ---------------------- ------------ ---------- ----------
1 ARCH MOUNTED EXTERN 81920 81437
2 DATA2 MOUNTED EXTERN 53184 51030
3 DATA MOUNTED EXTERN 76800 3053
4 OCR MOUNTED NORMAL 30720 29794
5 DATA3 MOUNTED EXTERN 7136 7039
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------------- -------------- ---------- ---------- --------------- ------------------------------------------------------------
NORMAL UNKNOWN 3936 3884 DATA3_DISKI DATA3_DISKI
NORMAL UNKNOWN 3200 3155 DATA3_DISKH DATA3_DISKH
NORMAL UNKNOWN 10240 9930 OCR_0002 OCR_0002
NORMAL UNKNOWN 53184 51030 DATA2_0000 DATA2_0000
NORMAL UNKNOWN 81920 81437 ARCH_0000 ARCH_0000
NORMAL UNKNOWN 76800 3053 DATA_0000 DATA_0000
NORMAL UNKNOWN 10240 9932 OCR_0001 OCR_0001
NORMAL UNKNOWN 10240 9932 OCR_0000 OCR_0000
8 rows selected.
SQL>
[grid@rac2 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.ARCH.dg ora....up.type ONLINE ONLINE rac1
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.DATA2.dg ora....up.type ONLINE ONLINE rac1
ora.DATA3.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora.OCR.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac1
ora.gnnt.db ora....se.type ONLINE ONLINE rac1
ora....nta.svc ora....ce.type ONLINE ONLINE rac2
ora....ntb.svc ora....ce.type ONLINE ONLINE rac2
ora....ect.svc ora....ce.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type ONLINE ONLINE rac1
[grid@rac2 ~]$
5.验证
[grid@rac2 ~]$ asmcmd
ASMCMD> ls
ARCH/
DATA/
DATA2/
DATA3/
OCR/
ASMCMD> cd DATA3/
ASMCMD> ls
test20160420zd/
ASMCMD> mkdir test20160421zd
ASMCMD> ls
test20160420zd/
test20160421zd/
ASMCMD>
成功
总结:向磁盘组加盘减盘是一个IO繁忙的操作,建议放在业务空闲时间来做,可以通过设置power并行来加快rebalance的速度。