High Availbility

OS & Virtualization

Wednesday, January 23, 2013

How to Migrate ASM Diskgroups To Another SAN

If your plans are replacing the current disks associated to your diskgroups with a new storage, this operation can be accomplished without any downtime, so you can follow the next steps


1) Backup all your databases and valid the backup (always required to protect your data).
2) Add the new path (new disks from the new storage) to your asm_disktring to be recognized by ASM:


Example:


 SQL> alter system set asm_diskstring = '/dev/emcpowerc*' ,


'/dev/emcpowerh*';
Where: '/dev/emcpowerc*' are the current disks.
Where: '/dev/emcpowerh*' are the new disks.

3) Confirm that the new disks are being detected by ASM:


 SQL> select path from v$asm_disk;





4) Add the new disks to your desired diskgroup:



 SQL> alter diskgroup add disk
’,
’,
’,
’,
.
.
.
’ rebalance power <#>;





5) Then wait until the rebalance operation completes:


 SQL> select * from v$asm_operation;
SQL> select * from gv$asm_operation;





6) Finally, remove the old disks:



 
SQL> alter diskgroup drop disk , , ,
,

.
.
.
rebalance power <#>;






7) Then wait until the rebalance operation completes:


 SQL> select * from v$asm_operation;
SQL> select * from gv$asm_operation;





8) Done, your ASM diskgroups and database have been migrated to the new storage.
Note: Alternatively, we can execute add disk & drop disk statements in one operation, in that way only one rebalance operation will be started as follow:


 SQL> alter diskgroup
add disk '', .., ''
drop disk
, , ..,
rebalance power <#>;





This is more efficient than separated commands (add disk & drop disk statements).

No comments: