Migrate DATA ASM Diskgroup To Another Storage
Migrate DATA ASM Diskgroup To Another Storage
-
If necessary, modify asm_diskstring.
alter system set asm_diskstring = '/dev/emcpowerc*','/dev/emcpowerh*' scope=both;
select name,path from v$asm_disk; -
Query the fail groups.
col path for a20
col state for a10
col failgroup for a15
col name for a15
select dg.name,dg.state,dg.type,d.disk_number,d.path,d.mount_status,d.failgroup,d.name,d.state
from v$asm_diskgroup dg, v$asm_disk d
where dg.group_number=d.group_number and dg.name='DATA'
order by dg.name,d.disk_number;
NAME STATE TYPE DISK_NUMBER PATH MOUNT_S FAILGROUP NAME STATE
--------------- ---------- ------ ----------- -------------------- ------- --------------- --------------- ----------
DATA MOUNTED EXTERN 0 ORCL:DATA1 CACHED DATA1 DATA1 NORMAL
DATA MOUNTED EXTERN 1 ORCL:DATA2 CACHED DATA2 DATA2 NORMAL
DATA MOUNTED EXTERN 2 ORCL:DATA3 CACHED DATA3 DATA3 NORMAL -
Create new disks.
~]# oracleasm createdisk NEW_DATA1 /dev/sdl1
Writing disk header: done
Instantiating disk: done
~]# oracleasm createdisk NEW_DATA2 /dev/sdm1
Writing disk header: done
Instantiating disk: done
~]# oracleasm createdisk NEW_DATA3 /dev/sdn1
Writing disk header: done
Instantiating disk: done
~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "NEW_DATA1"
Instantiating disk "NEW_DATA2"
Instantiating disk "NEW_DATA3" -
From node1 add each disk to a fail group.
sqlplus " / as sysasm"
-- external type not need to specify a fail group
ALTER DISKGROUP DATA ADD DISK
'ORCL:NEW_DATA1',
'ORCL:NEW_DATA2',
'ORCL:NEW_DATA3'
REBALANCE POWER 8;
-- chanage rebalance power. compatiable.asm >= 11.2.0.2, power range is 0 to 1024; if < 11.2.0.2, power range is 0 to 11.
alter diskgroup DATA rebalance power 8; -
Check gv$asm_operation till it returns no rows.
SQL> select * from gv$asm_operation;
no rows selected
SQL> col path for a20
col state for a10
col failgroup for a15
col name for a15
select dg.name,dg.state,dg.type,d.disk_number,d.path,d.mount_status,d.failgroup,d.name,d.state
from v$asm_diskgroup dg, v$asm_disk d
where dg.group_number=d.group_number and dg.name='DATA'
order by dg.name,d.disk_number;
NAME STATE TYPE DISK_NUMBER PATH MOUNT_S FAILGROUP NAME STATE
--------------- ---------- ------ ----------- -------------------- ------- --------------- --------------- ----------
DATA MOUNTED EXTERN 0 ORCL:DATA1 CACHED DATA1 DATA1 NORMAL
DATA MOUNTED EXTERN 1 ORCL:DATA2 CACHED DATA2 DATA2 NORMAL
DATA MOUNTED EXTERN 2 ORCL:DATA3 CACHED DATA3 DATA3 NORMAL
DATA MOUNTED EXTERN 3 ORCL:NEW_DATA1 CACHED NEW_DATA1 NEW_DATA1 NORMAL
DATA MOUNTED EXTERN 4 ORCL:NEW_DATA2 CACHED NEW_DATA2 NEW_DATA2 NORMAL
DATA MOUNTED EXTERN 5 ORCL:NEW_DATA3 CACHED NEW_DATA3 NEW_DATA3 NORMAL -
Drop old disks.
ALTER DISKGROUP DATA DROP DISK
'DATA1',
'DATA2',
'DATA3'
REBALANCE POWER 8; -
Check gv$asm_operation till it returns no rows.
SQL> select * from gv$asm_operation;
no rows selected
SQL> col path for a20
col state for a10
col failgroup for a15
col name for a15
select dg.name,dg.state,dg.type,d.disk_number,d.path,d.mount_status,d.failgroup,d.name,d.state
from v$asm_diskgroup dg, v$asm_disk d
where dg.group_number=d.group_number and dg.name='DATA'
order by dg.name,d.disk_number;
NAME STATE TYPE DISK_NUMBER PATH MOUNT_S FAILGROUP NAME STATE
--------------- ---------- ------ ----------- -------------------- ------- --------------- --------------- ----------
DATA MOUNTED EXTERN 3 ORCL:NEW_DATA1 CACHED NEW_DATA1 NEW_DATA1 NORMAL
DATA MOUNTED EXTERN 4 ORCL:NEW_DATA2 CACHED NEW_DATA2 NEW_DATA2 NORMAL
DATA MOUNTED EXTERN 5 ORCL:NEW_DATA3 CACHED NEW_DATA3 NEW_DATA3 NORMAL -
Note: add and drop disks in one command, only one rebalancing operation will occur.
ALTER DISKGROUP DATA ADD DISK
'ORCL:NEW_DATA1',
'ORCL:NEW_DATA2',
'ORCL:NEW_DATA3'
DROP DISK
'DATA1',
'DATA2',
'DATA3'
REBALANCE POWER 8; -
Delete old disks.
~]# oracleasm deletedisk DATA1
Clearing disk header: done
Dropping disk: done
~]# oracleasm deletedisk DATA2
Clearing disk header: done
Dropping disk: done
~]# oracleasm deletedisk DATA3
Clearing disk header: done
Dropping disk: done
~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Cleaning disk "DATA1"
Cleaning disk "DATA2"
Cleaning disk "DATA3"
Scanning system for ASM disks...
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.