1说明
在数据库online状态下,可以通过ALTER DISKGROUP语句来修改磁盘组,也可以通过ASMCA,和ASMCMD chdg的命令来修改磁盘组。
通过ALTAER DISKGROUP命令来修改磁盘组,默认情况下直到操作完成才会返回执行结果。通过查询V$ASM_OPERATION视图来查看操作的状态。
注意:在绝大部分操作系统平台下,可以通过按CTRL+C来中断wait模式,并返回 ORA-01013: user requested cancel of current operation信息。但是CTRL+C不会取消rebalance,任何添加磁盘,删除磁盘,resize等操作。
2具体例子
2.1 向磁盘组中添加磁盘
ALTER DISKGROUP data1 ADD DISK
'/devices/diska5' NAME diska5,
'/devices/diska6' NAME diska6;
[REBALANCE POWER 5 WAIT FORCE]; —可选参数平衡能力,是否等待操作完成,强行添加磁盘。
2.2 替换磁盘组中的磁盘
SQL> ALTER DISKGROUP data2 REPLACE DISK diskc7 WITH '/devices/diskc18' POWER 3;
2.3 重命名磁盘组中的磁盘
SQL> ALTER DISKGROUP fra2 MOUNT RESTRICTED;
SQL> ALTER DISKGROUP fra2 RENAME DISK 'FRA1_0001' TO 'FRA2_0001',
'FRA1_0002' TO 'FRA2_0002';
2.4 删除磁盘组中的磁盘
—删除磁盘diska5
ALTER DISKGROUP data1 DROP DISK diska5;
—删除磁盘diska5,同时添加磁盘diska9
ALTER DISKGROUP data1 DROP DISK diska5
ADD FAILGROUP failgrp1 DISK '/devices/diska9' NAME diska9;
2.5 resize磁盘大小
ALTER DISKGROUP的RESIZE子句使您能够在磁盘组中调整磁盘的大小。
当在磁盘组中调整磁盘的大小时,所有磁盘的大小必须相同。
如果在size子句中没有指定新大小,那么Oracle ASM使用操作系统返回的磁盘的大小。新的大小被写入到Oracle ASM磁盘头,如果新大小增加,那么新的空间将立即可用来分配。如果新大小正在减少,那么重新平衡必须将文件范围重新分配到超出限制的新大小限制之外。如果再平衡操作能够成功地重新定位所有区段,那么新的大小就会永久不变,否则重新平衡就会失败。
ALTER DISKGROUP data1 RESIZE ALL SIZE 100G;
2.6 取消正在删除的磁盘
通过UNDROP DISKS字句来取消所有磁盘组中处于dropping状态的磁盘。
ALTER DISKGROUP data1 UNDROP DISKS;
2.7 手动Rebalance磁盘组
ALTER DISKGROUP data2 REBALANCE MODIFY POWER 10;
—修改Rebalance power
ALTER DISKGROUP data2 REBALANCE MODIFY POWER;
通过EXPLAIN WORK语句来确定Rebalance的工作量,结果计算显示在v$ ASM_ESTIMATE视图中。
EXPLAIN WORK FOR ALTER DISKGROUP data DROP DISK data_0000;
Explained.
SELECT est_work FROM V$ASM_ESTIMATE;
EST_WORK
--------
4211
EXPLAIN WORK SET STATEMENT_ID='online' FOR ALTER DISKGROUP data
ONLINE disk data_000;
Explained.
SELECT est_work FROM V$ASM_ESTIMATE WHERE STATEMENT_ID='online';
EST_WORK
--------
421
版权声明:本文为博主原创文章,未经博主允许不得转载。