sunha6 的asm 磁盘组空间有点紧张,而sunha1 的利用率又很低,于是准备从sunha1_N 删除两个磁盘加到sunha6上
注意,我们采用的NORmal 的冗余方式,所以删增减磁盘的时候,一定要2给磁盘为一个操作单位,要么删两个,要门加两个
每个failgroup 各增删一个,要么不操作,免得引起麻烦。
现在sunha1 上查看asm 磁盘情况:
[code]
col name for a10
col group_number for 99999
col disk_number for 99999
col state for a10
col failgroup for a15
col path for a50
set linesize 132
select name, group_number , disk_number ,state ,failgroup ,path from v$asm_disk ;
2013-03-07
NAME GROUP_NUMBER DISK_NUMBER STATE FAILGROUP PATH
--------------- ------------ ----------- ---------- ---------- --------------------------------------------------
0 56 NORMAL /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s1
SUNHA1_N_0005 1 5 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6
SUNHA1_N_0004 1 4 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800B0557B32B813E011d0s6
SUNHA1_N_0003 1 3 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800AF557B32B813E011d0s6 -------
SUNHA1_N_0000 1 0 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6
SUNHA1_N_0002 1 2 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008D4BB66773C4DF11d0s6
SUNHA1_N_0001 1 1 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6
[/code]
为了便于管理,我们决定删除 SUNHA1_N_0005 跟 SUNHA1_N_0000 两个磁盘,
分别来自sunha2_f2 和SUNHA1_F1 两个failgroup
确保两个磁盘组里的磁盘是相等的。
执行删除操作
[code]
SYS AS SYSDBA at +ASM > alter diskgroup sunha1_n drop disk SUNHA1_N_0005 ;
´ÅÅÌ×éÒѱä¸ü¡£
SYS AS SYSDBA at +ASM > alter diskgroup sunha1_n drop disk SUNHA1_N_0000 ;
´ÅÅÌ×éÒѱä¸ü¡£
SYS AS SYSDBA at +ASM > select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 1 1 37 105457 1680 62
SYS AS SYSDBA at +ASM > select name, group_number , disk_number ,state ,failgroup ,path from v$asm_disk ;
NAME GROUP_NUMBER DISK_NUMBER STATE FAILGROUP PATH
--------------- ------------ ----------- ---------------- ---------- --------------------------------------------------
0 56 NORMAL /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s1
SUNHA1_N_0005 1 5 DROPPING SUNHA2_F2 /dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6
SUNHA1_N_0004 1 4 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800B0557B32B813E011d0s6
SUNHA1_N_0003 1 3 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800AF557B32B813E011d0s6
SUNHA1_N_0000 1 0 DROPPING SUNHA1_F1 /dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6
SUNHA1_N_0002 1 2 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008D4BB66773C4DF11d0s6
SUNHA1_N_0001 1 1 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6
ÒÑÑ¡Ôñ62ÐС£
[/code]
SUNHA1_N_0005 SUNHA1_N_0000 的磁盘状态变为droping 了
从 v$asm_operation 看到, 磁盘组正在做rebalance
[code]
SYS AS SYSDBA at +ASM > select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 1 1 5274 106309 3131 32
SYS AS SYSDBA at +ASM > /
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 1 1 81424 109699 3483 8
[/code]
还剩8分钟就rebalance 完了。
这里需要注意的是,删除磁盘前,一定要确认,剩余的磁盘空间能够容下删除的磁盘上被占用的空间数量。
[code]
[oracle@sunha2.pc.com ~]$ /data/oracle/crontab/sunha1/ORACLE_MONITOR/check_asm.sh
NAME STATE MOUNT_STAT PATH TOTAL(GB) USED%
-------------------- ---------- -------------- -------------------------------------------------- --------- ----------
SUNHA1_N_0000 NORMAL CACHED /dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6 99.75 50.54
SUNHA1_N_0001 NORMAL CACHED /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6 99.75 50.55
SUNHA1_N_0002 NORMAL CACHED /dev/rdsk/c4t6006016010511E008D4BB66773C4DF11d0s6 99.75 50.58
SUNHA1_N_0003 NORMAL CACHED /dev/rdsk/c4t6006016023912800AF557B32B813E011d0s6 99.75 50.55
SUNHA1_N_0004 NORMAL CACHED /dev/rdsk/c4t6006016023912800B0557B32B813E011d0s6 99.75 50.59
SUNHA1_N_0005 NORMAL CACHED /dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6 99.75 50.53
[oracle@sunha2.pc.com ~]$
删除前,一共是6个盘,每个50%的使用率 ,我们在删除磁盘前,对磁盘空间进行了整理,回收了空间,
到删除前,使用率在32% 左右,
删除2个磁盘后,整个磁盘组的使用率在48% 左右。
[oracle@sunha2.pc.com ~]$ /data/oracle/crontab/sunha1/ORACLE_MONITOR/check_asm.sh
NAME STATE MOUNT_STAT PATH TOTAL(GB) USED%
-------------------- ---------- -------------- -------------------------------------------------- --------- ----------
SUNHA1_N_0000 DROPPING CACHED /dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6 99.75 6.76
SUNHA1_N_0001 NORMAL CACHED /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6 99.75 48.59
SUNHA1_N_0002 NORMAL CACHED /dev/rdsk/c4t6006016010511E008D4BB66773C4DF11d0s6 99.75 48.58
SUNHA1_N_0003 NORMAL CACHED /dev/rdsk/c4t6006016023912800AF557B32B813E011d0s6 99.75 48.59
SUNHA1_N_0004 NORMAL CACHED /dev/rdsk/c4t6006016023912800B0557B32B813E011d0s6 99.75 48.58
SUNHA1_N_0005 DROPPING CACHED /dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6 99.75 6.76
[/code]
最后看看是否热balance完了,切记一定rebalance 完了,才可以进行后续操作,免得破坏磁盘组。
[code]
SYS AS SYSDBA at +ASM > select * from v$asm_operation ;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 1 1 111058 111985 3682 0
SYS AS SYSDBA at +ASM > /
δѡ¶¨ÐÐ
SYS AS SYSDBA at +ASM >
SYS AS SYSDBA at +ASM > select name, group_number , disk_number ,state ,failgroup ,path from v$asm_disk ;
NAME GROUP_NUMBER DISK_NUMBER STATE FAILGROUP PATH
--------------- ------------ ----------- ---------------- ---------- --------------------------------------------------
0 56 NORMAL /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s1
0 57 NORMAL /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s6
0 58 NORMAL /dev/rdsk/c4t6006016023912800ECE98D798FB1DF11d0s1
SUNHA1_N_0004 1 4 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800B0557B32B813E011d0s6
SUNHA1_N_0003 1 3 NORMAL SUNHA2_F2 /dev/rdsk/c4t6006016023912800AF557B32B813E011d0s6
SUNHA1_N_0002 1 2 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008D4BB66773C4DF11d0s6
SUNHA1_N_0001 1 1 NORMAL SUNHA1_F1 /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6
[/code]
v$asm_operation 没有记录了,说明rebalance 完了
sunha1_n 磁盘组里已经没有 SUNHA1_N_0005 SUNHA1_N_0000 这两个磁盘了。
接下来 就可以把这俩磁盘加到sunha6 上去了。
添加磁盘也是要两个磁盘组每个组天加相等的磁盘数目。
[code ]
[oracle@sunha6 ~]$ cd /dev/rdsk
[oracle@sunha6 rdsk]$ ls /dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6
/dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6
[oracle@sunha6 rdsk]$ ls /dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6
/dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6
[oracle@sunha6 rdsk]$
export ORACLE_SID=+ASM
SYS AS SYSDBA at +ASM > col name for a10
SYS AS SYSDBA at +ASM > col group_number for 99999
SYS AS SYSDBA at +ASM > col disk_number for 99999
SYS AS SYSDBA at +ASM > col state for a10
SYS AS SYSDBA at +ASM > col failgroup for a15
SYS AS SYSDBA at +ASM > col path for a50
SYS AS SYSDBA at +ASM >
SYS AS SYSDBA at +ASM > set linesize 132
SYS AS SYSDBA at +ASM > col name for a20
SYS AS SYSDBA at +ASM > /
NAME GROUP_NUMBER STATE FAILGROUP PATH
-------------------- ------------ ---------- --------------- --------------------------------------------------
SUNHA6_N_0005 1 NORMAL SUNHA6_F1 /dev/rdsk/c4t6006016010511E002C5FFF791CB9DF11d0s6
SUNHA6_N_0007 1 NORMAL SUNHA6_F1 /dev/rdsk/c4t6006016010511E002A5FFF791CB9DF11d0s6
SUNHA6_N_0006 1 NORMAL SUNHA6_F1 /dev/rdsk/c4t6006016010511E002B5FFF791CB9DF11d0s6
SUNHA6_N_0004 1 NORMAL SUNHA6_F1 /dev/rdsk/c4t6006016010511E007020339AC0A5DF11d0s6
SUNHA6_N_0009 1 NORMAL SUNHA6_F2 /dev/rdsk/c4t6006016023912800C8CB861C1FB9DF11d0s6
SUNHA6_N_0011 1 NORMAL SUNHA6_F2 /dev/rdsk/c4t6006016023912800C9CB861C1FB9DF11d0s6
SUNHA6_N_0010 1 NORMAL SUNHA6_F2 /dev/rdsk/c4t6006016023912800CACB861C1FB9DF11d0s6
SUNHA6_N_0008 1 NORMAL SUNHA6_F2 /dev/rdsk/c4t6006016023912800ECE98D798FB1DF11d0s6
[/cdoe]
注意: 我们的存储是分为两套阵列的,
每套阵列只为一个failgroup提供磁盘,这样才会在存储阵列坏掉的时候,不会影响到数据库运行。
所以切记这点。
[code]
SYS AS SYSDBA at +ASM >
SYS AS SYSDBA at +ASM > alter diskgroup sunha6_n
2 add failgroup SUNHA6_F1 disk '/dev/rdsk/c4t6006016010511E008F4BB66773C4DF11d0s6' name SUNHA6_N_0003
3 add failgroup SUNHA6_F2 disk '/dev/rdsk/c4t6006016023912800B1557B32B813E011d0s6' name SUNHA6_N_0012;
Diskgroup altered.
SYS AS SYSDBA at +ASM > select * from v$asm_operation ;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 1 1 122 207681 1560 133
[/code]
好了磁盘添加完了。
等待rebalance 完了,就可以。
补充一点,这里的rebalance 我们只指定了一个进程,可以加字句 power N 就可以指定N 的进程同时rebalance ,
白天指定太多,会引起较大负载,就让他慢慢跑吧。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-755458/,如需转载,请注明出处,否则将追究法律责任。