计划本周做 asm 磁盘的切换准备工作,上周已经做好了lun的划分工作,
sunha5_n 包括两个磁盘组, sunha5_f1,
sunha5_f2 ,我们原定的分别跨在两个存储上,
前段时间,因为磁盘空间紧张,临时添加磁盘空间打破了这种格局,对维护带来一
定的难度,需要调整回去,本次操作的目的在于此
删除 sunha5_n_0000 磁盘,添加一个新磁盘代替之。
先
是删除很轻松[code]
1* select name, failgroup ,path from v$asm_disk
where name is not null order by name
SYS AS SYSDBA at +ASM > /
NAME
FAILGROUP PATH
--------------------
--------------- --------------------------------------------------
SUNHA5_N_0000
SUNHA5_F2 /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6
SUNHA5_N_0001
SUNHA5_F2 /dev/rdsk/c4t6006016023912800BA383E8BACBADF11d0s6
SUNHA5_N_0002
SUNHA5_F2 /dev/rdsk/c4t6006016023912800B02840888FB1DF11d0s6
SUNHA5_N_0003
SUNHA5_F2 /dev/rdsk/c4t60060160239128008E54346EACBADF11d0s6
SUNHA5_N_0004
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00128706D3AABADF11d0s6
SUNHA5_N_0005
SUNHA5_F1 /dev/rdsk/c4t6006016010511E002D5FFF791CB9DF11d0s6
SUNHA5_N_0006
SUNHA5_F1 /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s6
SUNHA5_N_0007
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00E4F60988C0A5DF11d0s6
SUNHA5_N_0008
SUNHA5_F2 /dev/rdsk/c4t6006016023912800CBCB861C1FB9DF11d0s6
SUNHA5_N_0009
SUNHA5_F1 /dev/rdsk/c4t6006016010511E008E4BB66773C4DF11d0s6
[/code][code]
SYS
AS SYSDBA at +ASM > alter diskgroup sunha5_n drop disk
SUNHA5_N_0000 ;
Diskgroup altered.
[/code]添加新磁盘[code]
SYS
AS SYSDBA at +ASM > alter diskgroup sunha5_n add failgroup
sunha5_f2 disk '/dev/rdsk/c4t6006016023912800AE557B32B813E011d0s6';
alter
diskgroup sunha5_n add failgroup sunha5_f2 disk
'/dev/rdsk/c4t6006016023912800AE557B32B813E011d0s6'
*
ERROR at
line 1:
ORA-15032: not all alterations performed
ORA-15010: name
is already used by an existing ASM disk
SYS AS SYSDBA at +ASM
> edit
Wrote file afiedt.buf
"afiedt.buf" 2 DD£?110 ×?·?
alter
diskgroup sunha5_n add failgroup sunha5_f2 disk
'/dev/rdsk/c4t6006016023912800AF557B32B813E011d0s6'
/
~
[/code]
系统报错,无法添加磁盘 ,问题出在哪里呢?
这个错误时报 asm 磁盘的 名
被占用,为新加磁盘指定磁盘名,当时,无法确定是什么问题,于是决定先回滚[code]
SYS AS SYSDBA at
+ASM > alter diskgroup sunha5_n undrop disks;
Diskgroup
altered.
1* select name,failgroup,path from v$asm_disk order by
failgroup ,name
SYS AS SYSDBA at +ASM > /
NAME
FAILGROUP PATH
-------------------- ---------------
--------------------------------------------------
SUNHA5_N_0004
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00128706D3AABADF11d0s6
SUNHA5_N_0005
SUNHA5_F1 /dev/rdsk/c4t6006016010511E002D5FFF791CB9DF11d0s6
SUNHA5_N_0006
SUNHA5_F1 /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s6
SUNHA5_N_0007
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00E4F60988C0A5DF11d0s6
SUNHA5_N_0009
SUNHA5_F1 /dev/rdsk/c4t6006016010511E008E4BB66773C4DF11d0s6
SUNHA5_N_0000
SUNHA5_F2 /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6
SUNHA5_N_0001
SUNHA5_F2 /dev/rdsk/c4t6006016023912800BA383E8BACBADF11d0s6
SUNHA5_N_0002
SUNHA5_F2 /dev/rdsk/c4t6006016023912800B02840888FB1DF11d0s6
SUNHA5_N_0003
SUNHA5_F2 /dev/rdsk/c4t60060160239128008E54346EACBADF11d0s6
SUNHA5_N_0008
SUNHA5_F2 /dev/rdsk/c4t6006016023912800CBCB861C1FB9DF11d0s6
磁
盘又找回来了
[/code]进过确认,发现新增的磁盘是新开的lun 没有使用过,不存在什么问题,权限也够,问题应该是出在asm
上[code]
SYS AS SYSDBA at +ASM > select * from
v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER
ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------
---------- -------- ---------- ---------- ---------- ----------
---------- -----------
2 REBAL RUN 1
1 23154 95589 1470 49
[/code]原来删
除了之后,系统自动发动了rebalance
操作,先前发出的三处的命令,并没有真正的删除磁盘,需要先吧这个磁盘的数据,移动到其他盘上,才会真正的删除磁盘,而asm
分配新加磁盘的命令是指派的asm 磁盘名称总是从最小没有使用的磁盘名开始,
导致 把
sunha5_n-0000 分给了新磁盘 而旧盘还没有从cache中清理掉,导致了冲突。
知道了原因就好办了,为了节省
rebalance 的时间,我们采用了先加盘,然后再删除盘, 有个缺点会导致当前命令窗口阻塞。[code]
SYS AS
SYSDBA at +ASM >alter diskgroup sunha5_n
add failgroup sunha5_f2
disk '/dev/rdsk/c4t6006016023912800AE557B32B813E011d0s6'
name
'SUNHA5_N_0010' reba
lance wait
/
[/code]另开一个窗口
删除磁盘sunha5_n_0000[code]
SYS AS SYSDBA at +ASM > col name for a20
SYS
AS SYSDBA at +ASM > col path for a50
SYS AS SYSDBA at +ASM >
col failgroup for a10
SYS AS SYSDBA at +ASM > select name
,failgroup ,path from v$asm_disk where name is not null order by
failgroup ,name;
NAME FAILGROUP PATH
--------------------
---------- --------------------------------------------------
SUNHA5_N_0004
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00128706D3AABADF11d0s6
SUNHA5_N_0005
SUNHA5_F1 /dev/rdsk/c4t6006016010511E002D5FFF791CB9DF11d0s6
SUNHA5_N_0006
SUNHA5_F1 /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s6
SUNHA5_N_0007
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00E4F60988C0A5DF11d0s6
SUNHA5_N_0009
SUNHA5_F1 /dev/rdsk/c4t6006016010511E008E4BB66773C4DF11d0s6
SUNHA5_N_0000
SUNHA5_F2 /dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6
SUNHA5_N_0001
SUNHA5_F2 /dev/rdsk/c4t6006016023912800BA383E8BACBADF11d0s6
SUNHA5_N_0002
SUNHA5_F2 /dev/rdsk/c4t6006016023912800B02840888FB1DF11d0s6
SUNHA5_N_0003
SUNHA5_F2 /dev/rdsk/c4t60060160239128008E54346EACBADF11d0s6
SUNHA5_N_0008
SUNHA5_F2 /dev/rdsk/c4t6006016023912800CBCB861C1FB9DF11d0s6
SUNHA5_N_0010
SUNHA5_F2 /dev/rdsk/c4t6006016023912800AE557B32B813E011d0s6
新
磁盘已经添加上去了
SYS AS SYSDBA at +ASM > alter diskgroup sunha5_n
drop disk SUNHA5_N_0000;
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 4802 121171
1850 62
SYS AS SYSDBA at +ASM > alter diskgroup
sunha5_n rebalance power 5 ;
Diskgroup altered.
并行rebalance
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 5 5 72 86286
1993
[/code]运行过程中,我们的asm 磁盘组检查代码成功的检测到asm磁盘故障。
NAME
STATE MOUNT_STAT PATH
TOTAL(GB) USED%
-------------------- ----------
-------------- --------------------------------------------------
--------- ----------
SUNHA5_N_0000 DROPPING CACHED
/dev/rdsk/c4t6006016010511E008C4BB66773C4DF11d0s6 99.75
36.8 SUNHA5_N_0001
NORMAL CACHED
/dev/rdsk/c4t6006016023912800BA383E8BACBADF11d0s6 99.75
80.49
SUNHA5_N_0002
NORMAL CACHED
/dev/rdsk/c4t6006016023912800B02840888FB1DF11d0s6 99.75
80.49
SUNHA5_N_0003
NORMAL CACHED
/dev/rdsk/c4t60060160239128008E54346EACBADF11d0s6 99.75
80.5
SUNHA5_N_0004
NORMAL CACHED
/dev/rdsk/c4t6006016010511E00128706D3AABADF11d0s6 99.75
80.49
SUNHA5_N_0005
NORMAL CACHED
/dev/rdsk/c4t6006016010511E002D5FFF791CB9DF11d0s6 99.75
80.49
SUNHA5_N_0006
NORMAL CACHED
/dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s6 99.75
80.49
SUNHA5_N_0007
NORMAL CACHED
/dev/rdsk/c4t6006016010511E00E4F60988C0A5DF11d0s6 99.75
80.49
SUNHA5_N_0008
NORMAL CACHED
/dev/rdsk/c4t6006016023912800CBCB861C1FB9DF11d0s6 99.75
80.49
SUNHA5_N_0009
NORMAL CACHED
/dev/rdsk/c4t6006016010511E008E4BB66773C4DF11d0s6 99.75
80.49
SUNHA5_N_0010
NORMAL CACHED
/dev/rdsk/c4t6006016023912800AE557B32B813E011d0s6 99.75
43.69
最后终于完成了[code]
1* select name
,failgroup ,path from v$asm_disk where name is not null order by
failgroup,name
SYS AS SYSDBA at +ASM > /
NAME
FAILGROUP PATH
-------------------- ----------
--------------------------------------------------
SUNHA5_N_0004
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00128706D3AABADF11d0s6
SUNHA5_N_0005
SUNHA5_F1 /dev/rdsk/c4t6006016010511E002D5FFF791CB9DF11d0s6
SUNHA5_N_0006
SUNHA5_F1 /dev/rdsk/c4t6006016010511E007C165A71C0A5DF11d0s6
SUNHA5_N_0007
SUNHA5_F1 /dev/rdsk/c4t6006016010511E00E4F60988C0A5DF11d0s6
SUNHA5_N_0009
SUNHA5_F1 /dev/rdsk/c4t6006016010511E008E4BB66773C4DF11d0s6
SUNHA5_N_0001
SUNHA5_F2 /dev/rdsk/c4t6006016023912800BA383E8BACBADF11d0s6
SUNHA5_N_0002
SUNHA5_F2 /dev/rdsk/c4t6006016023912800B02840888FB1DF11d0s6
SUNHA5_N_0003
SUNHA5_F2 /dev/rdsk/c4t60060160239128008E54346EACBADF11d0s6
SUNHA5_N_0008
SUNHA5_F2 /dev/rdsk/c4t6006016023912800CBCB861C1FB9DF11d0s6
SUNHA5_N_0010
SUNHA5_F2 /dev/rdsk/c4t6006016023912800AE557B32B813E011d0s6
[/code]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-683232/
,如需转载,请注明出处,否则将追究法律责任。