分类:
2008-10-27 13:38:38
这基本上是可以实现的,因为ASM在一个磁盘组中的所有磁盘上均匀地分布数据,假定你具有足够的空间,你可以删除一个磁盘组中的磁盘,而ASM将无缝地将这些数据移植到这个磁盘组中的已有磁盘上。
SQL> select group_number, name, TOTAL_MB, FREE_MB from V$asm_disk_stat; GROUP_NUMBER NAME TOTAL_MB FREE_MB ------------ ---------------- ---------- ---------- 1 VOL1 61439 61187 2 VOL2 61439 61164 3 VOL3 61439 61164 4 VOL4 409594 310962 4 VOL5 153597 95240 |
所以,我们看到VOL4和VOL5是磁盘组4中的两个磁盘。VOL4具有足够大的容量来将所有的数据放置在这个磁盘组上。现在可以地删除VOL5了,而且这是一个联机的操作:
SQL> alter diskgroup DATA4 drop disk VOL5; |
磁盘组改变了。
这个alter diskgroup命令实际上拖动你正在删除的磁盘的扩展段,并将它们放置在你的磁盘组中保留的磁盘上。当这个操作继续的时候,你可以查看你进行的操作的V$ASM_OPERATION:
SQL> select * from v$asm_operation; GROUP_NUMBER OPERA STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ------------ ----- ---- ----- ----- ------ ------- ---------- ---------- 4 REBAL RUN 1 1 100 42234 1007 41 |
这里大多数字段是自说明性的,不过SOFAR字段告诉你移动的分配单元(au)数量,EST_WORK和EST_RATE也是以分配单元和分配单元/分钟来显示。
一旦重新调整删除了所有的分配单元,那么这个磁盘就从这个磁盘组中删除了:
SQL> select group_number, name, TOTAL_MB, FREE_MB from V$asm_disk_stat; GROUP_NUMBER NAME TOTAL_MB FREE_MB ------------ ---------------- ---------- ---------- 1 VOL1 61439 61187 2 VOL2 61439 61164 3 VOL3 61439 61164 4 VOL4 409594 252006 |
删除磁盘组中的一个磁盘看起来好像在做广告宣传,但它实际的好处不是仅仅删除一个磁盘,而是显示了一整个存储队列,而这具有潜力使你可以升级存储或甚至是完全移植到一个不同的存储平台。