This is a way you can use to copy/move your ASM disks to new location
without the need to stop your instance. it include command to be run
by root and by asm admin
1. creating the new disks(LUN) as ASM devices (run as root)
[[email protected] ~]# /etc/init.d/oracleasm listdisks DATA1 OCR1 [[email protected] ~]# /etc/init.d/oracleasm createdisk DATA2 /dev/sdb8 Marking disk "DATA2" as an ASM disk: [ OK ] [[email protected] ~]# [[email protected] ~]# /etc/init.d/oracleasm listdisks DATA1 DATA2 OCR1
2. List disk in disk-group (run as asmadmin)
SQL> select GROUP_NUMBER,NAME,STATE,TOTAL_MB from v$asm_diskgroup ; GROUP_NUMBER NAME STATE TOTAL_MB ------------ ------------------------------ ----------- ---------- 1 OCR MOUNTED 964 2 DATA MOUNTED 4777 SQL> select NAME,GROUP_NUMBER,REDUNDANCY from v$asm_disk ; NAME GROUP_NUMBER REDUNDA ------------------------------ ------------ ------- 0 UNKNOWN DATA1 2 UNKNOWN OCR1 1 UNKNOWN
3. Adding disk to DATA disk-group (run as asdmadmin)
SQL> ALTER DISKGROUP DATA REBALANCE POWER 0 ; Diskgroup altered. SQL> ALTER DISKGROUP DATA ADD DISK 'ORCL:DATA2' NAME DATA2 ; Diskgroup altered. SQL> ALTER DISKGROUP DATA DROP DISK DATA1 ; Diskgroup altered. SQL> ALTER DISKGROUP data REBALANCE POWER 1; Diskgroup altered. SQL> select NAME,GROUP_NUMBER,REDUNDANCY from v$asm_disk ; NAME GROUP_NUMBER REDUNDA ------------------------------ ------------ ------- 0 UNKNOWN DATA1 1 UNKNOWN DATA2 1 UNKNOWN OCR1
Note that DATA1 was marked as DROP , it will stop showing once all data sync to DATA2
the process can be monitored by this query (run as asmadmin)
SELECT g.name "Diskgroup", 100*(max((d.total_mb-d.free_mb)/d.total_mb)-min((d.total_mb-d.free_mb)/d.total_mb))/max((d.total_mb-d.free_mb)/d.total_mb) "Imbalance", 100*(max(d.total_mb)-min(d.total_mb))/max(d.total_mb) "Variance", 100*(min(d.free_mb/d.total_mb)) "MinFree", count(*) "DiskCnt", g.type "Type" FROM v$asm_disk d, v$asm_diskgroup g WHERE d.group_number = g.group_number and --d.group_number = 1 and d.state = 'NORMAL' and d.mount_status = 'CACHED' 12 GROUP BY g.name, g.type; Diskgroup Imbalance Variance MinFree ------------------------------ ---------- ---------- ---------- ---------- Type ------ OCR EXTERN DATA EXTERN • DiskCnt 0 63.3817427 1 0 59.5143395 1