steps to Migrate ASM diskgroups from one SAN to another SAN
1) Backup all your databases and valid the backup .
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_disktring = ‘/dev/dellpowerc*’ , ‘/dev/dellpowerh*’;
Where: ‘/dev/dellpowerc*’ are the current disks.
Where: ‘/dev/dellpowerh*’ 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 <diskgroup name> add disk
‘<new disk 1>’,
‘<new disk 2>’,
‘<new disk 3>’,
‘<new disk 4>’,
.
.
.
‘<new disk N>’;
5) Then wait until the rebalance operation completes:
SQL> select * from v$asm_operation;
6) Finally, remove the old disks:
SQL> alter diskgroup <diskgroup name> drop disk
<disk name A>,
<disk name B>,
<disk name D>,
<disk name E>,
.
.
.
<disk name X>;
7) Then wait until the rebalance operation completes:
SQL> select * from v$asm_operation;
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 <diskgroup name>
add disk ‘<new device physical name 1>’, .., ‘<new device physical name N>’
drop disk <old disk logical name 1>, <old disk logical name 2>, ..,<old disk logical name N>
rebalance <#>;
This is more efficient than separated commands (add disk & drop disk statements).