Friday, June 26, 2015

How to migrate ASM diskgroups from one SAN to another SAN without a downtime

1. Here are the various steps required to migrate ASM diskgroups from one SAN to another SAN without a downtime.

Metalink Note Reference: Exact Steps To Migrate ASM Diskgroups To Another SAN/Disk-Array/DAS/etc Without Downtime. (Doc ID 837308.1)


--******************************************
--** 2. Review the initial configuration ***
--******************************************

Display the number of disks on the operating system level. The output should consist of disks from the old and new SAN.
oracle@racattack15u::/u01 $ ls -lrt /dev/asm*
crw-rw----    1 oracle   dba          20, 22 Nov 15 2012  /dev/asm_16G_P8_3
crw-rw----    1 oracle   dba          20, 21 Nov 15 2012  /dev/asm_16G_P8_2
crw-rw----    1 oracle   dba          20, 33 Nov 16 2012  /dev/asm_16G_P6_3
crw-rw----    1 oracle   dba          20, 29 Nov 16 2012  /dev/asm_16G_P7_3
crw-rw----    1 oracle   dba          20, 40 Nov 16 2012  /dev/asm_128G_P8_1
crw-rw----    1 oracle   dba          20, 39 Nov 16 2012  /dev/asm_16G_P9_1
crw-rw----    1 oracle   dba          20, 28 Nov 16 2012  /dev/asm_16G_P9_2
crw-rw----    1 oracle   dba          20, 38 Nov 16 2012  /dev/asm_16G_P10_1
crw-rw----    1 oracle   dba          20, 41 Nov 16 2012  /dev/asm_16G_P10_3
crw-rw----    1 oracle   dba          20, 43 Jun  4 2013  /dev/asm_128G_P12_1
crw-rw----    1 oracle   dba          20, 57 Jun  4 2013  /dev/asm_128G_P12_3
crw-rw----    1 oracle   dba          20, 56 Jun  4 2013  /dev/asm_128G_P12_4
crw-rw----    1 oracle   dba          20, 52 Jun  4 2013  /dev/asm_128G_P12_5
crw-rw----    1 oracle   dba          20, 47 Jun  4 2013  /dev/asm_128G_P12_6
crw-rw----    1 oracle   dba          20, 48 Jun  4 2013  /dev/asm_128G_P12_7
crw-rw----    1 oracle   dba          20, 54 Jun  4 2013  /dev/asm_128G_P12_8
crw-rw----    1 oracle   dba          20, 17 Aug 23 21:34 /dev/asm_16G_P8_1
crw-rw----    1 oracle   dba          20, 27 Oct  9 12:22 /dev/asm_16G_P7_2
crw-rw----    1 oracle   dba          20, 49 Oct  9 12:22 /dev/asm_128G_P13_4
crw-rw----    1 oracle   dba          20, 19 Oct  9 12:25 /dev/asm_128G_P7_1
crw-rw----    1 oracle   dba          20, 37 Oct  9 12:27 /dev/asm_16G_P9_3
crw-rw----    1 oracle   dba          20, 31 Oct  9 12:28 /dev/asm_16G_P7_1
crw-rw----    1 oracle   dba          20, 42 Oct  9 12:28 /dev/asm_16G_P10_2
crw-rw----    1 oracle   dba          20, 32 Oct  9 12:28 /dev/asm_128G_P9_3
crw-rw----    1 oracle   dba          20, 26 Oct  9 12:28 /dev/asm_128G_P8_3
crw-rw----    1 oracle   dba          20, 34 Oct  9 12:28 /dev/asm_128G_P8_2
crw-rw----    1 oracle   dba          20, 15 Oct  9 12:28 /dev/asm_128G_P7_2
crw-rw----    1 oracle   dba          20, 30 Oct  9 12:28 /dev/asm_128G_P6_3
crw-rw----    1 oracle   dba          20, 13 Oct  9 12:28 /dev/asm_128G_P6_2
crw-rw----    1 oracle   dba          20, 25 Oct  9 12:28 /dev/asm_128G_P6_1
crw-rw----    1 oracle   dba          20, 24 Oct  9 12:28 /dev/asm_128G_P5_3
crw-rw----    1 oracle   dba          20, 14 Oct  9 12:28 /dev/asm_128G_P2_4
crw-rw----    1 oracle   dba          20, 16 Oct  9 12:28 /dev/asm_128G_P1_4
crw-rw----    1 oracle   dba          20, 51 Oct  9 12:28 /dev/asm_128G_P13_7
crw-rw----    1 oracle   dba          20, 53 Oct  9 12:28 /dev/asm_128G_P13_6
crw-rw----    1 oracle   dba          20, 50 Oct  9 12:28 /dev/asm_128G_P13_5
crw-rw----    1 oracle   dba          20, 46 Oct  9 12:28 /dev/asm_128G_P13_3
crw-rw----    1 oracle   dba          20, 55 Oct  9 12:28 /dev/asm_128G_P13_2
crw-rw----    1 oracle   dba          20, 58 Oct  9 12:28 /dev/asm_128G_P13_1
crw-rw----    1 oracle   dba          20, 45 Oct  9 12:28 /dev/asm_128G_P12_9
crw-rw----    1 oracle   dba          20, 44 Oct  9 12:28 /dev/asm_128G_P12_2
crw-rw----    1 oracle   dba          20, 12 Oct  9 12:28 /dev/asm_128G_P11_3
crw-rw----    1 oracle   dba          20, 18 Oct  9 12:28 /dev/asm_128G_P11_2
crw-rw----    1 oracle   dba          20, 20 Oct  9 12:28 /dev/asm_128G_P11_1
crw-rw----    1 oracle   dba          20, 36 Oct  9 12:28 /dev/asm_128G_P10_3
crw-rw----    1 oracle   dba          20, 35 Oct  9 12:28 /dev/asm_128G_P10_2
crw-rw----    1 oracle   dba          20,112 Dec  3 11:59 /dev/asm_16G_9
crw-rw----    1 oracle   dba          20, 84 Dec  3 11:59 /dev/asm_16G_8
crw-rw----    1 oracle   dba          20,111 Dec  3 11:59 /dev/asm_16G_7
crw-rw----    1 oracle   dba          20, 85 Dec  3 11:59 /dev/asm_16G_6
crw-rw----    1 oracle   dba          20,115 Dec  3 11:59 /dev/asm_16G_5
crw-rw----    1 oracle   dba          20, 76 Dec  3 11:59 /dev/asm_16G_4
crw-rw----    1 oracle   dba          20,107 Dec  3 11:59 /dev/asm_16G_3
crw-rw----    1 oracle   dba          20, 80 Dec  3 11:59 /dev/asm_16G_2
crw-rw----    1 oracle   dba          20, 93 Dec  3 11:59 /dev/asm_16G_12
crw-rw----    1 oracle   dba          20,114 Dec  3 11:59 /dev/asm_16G_11
crw-rw----    1 oracle   dba          20, 83 Dec  3 11:59 /dev/asm_16G_10
crw-rw----    1 oracle   dba          20,116 Dec  3 11:59 /dev/asm_16G_1
crw-rw----    1 oracle   dba          20, 78 Dec  3 11:59 /dev/asm_16G_0
crw-rw----    1 oracle   dba          20, 60 Dec  3 11:59 /dev/asm_128G_9
crw-rw----    1 oracle   dba          20, 94 Dec  3 11:59 /dev/asm_128G_8
crw-rw----    1 oracle   dba          20, 63 Dec  3 11:59 /dev/asm_128G_7
crw-rw----    1 oracle   dba          20,103 Dec  3 11:59 /dev/asm_128G_6
crw-rw----    1 oracle   dba          20, 68 Dec  3 11:59 /dev/asm_128G_5
crw-rw----    1 oracle   dba          20, 86 Dec  3 11:59 /dev/asm_128G_4
crw-rw----    1 oracle   dba          20,113 Dec  3 11:59 /dev/asm_128G_34
crw-rw----    1 oracle   dba          20, 82 Dec  3 11:59 /dev/asm_128G_33
crw-rw----    1 oracle   dba          20,105 Dec  3 11:59 /dev/asm_128G_32
crw-rw----    1 oracle   dba          20, 77 Dec  3 11:59 /dev/asm_128G_31
crw-rw----    1 oracle   dba          20,110 Dec  3 11:59 /dev/asm_128G_30
crw-rw----    1 oracle   dba          20, 71 Dec  3 11:59 /dev/asm_128G_3
crw-rw----    1 oracle   dba          20, 90 Dec  3 11:59 /dev/asm_128G_29
crw-rw----    1 oracle   dba          20,104 Dec  3 11:59 /dev/asm_128G_28
crw-rw----    1 oracle   dba          20, 79 Dec  3 11:59 /dev/asm_128G_27
crw-rw----    1 oracle   dba          20, 99 Dec  3 11:59 /dev/asm_128G_26
crw-rw----    1 oracle   dba          20, 73 Dec  3 11:59 /dev/asm_128G_25
crw-rw----    1 oracle   dba          20,108 Dec  3 11:59 /dev/asm_128G_24
crw-rw----    1 oracle   dba          20, 61 Dec  3 11:59 /dev/asm_128G_23
crw-rw----    1 oracle   dba          20,100 Dec  3 11:59 /dev/asm_128G_22
crw-rw----    1 oracle   dba          20, 70 Dec  3 11:59 /dev/asm_128G_21
crw-rw----    1 oracle   dba          20,102 Dec  3 11:59 /dev/asm_128G_20
crw-rw----    1 oracle   dba          20, 88 Dec  3 11:59 /dev/asm_128G_2
crw-rw----    1 oracle   dba          20, 66 Dec  3 11:59 /dev/asm_128G_19
crw-rw----    1 oracle   dba          20,101 Dec  3 11:59 /dev/asm_128G_18
crw-rw----    1 oracle   dba          20, 65 Dec  3 11:59 /dev/asm_128G_17
crw-rw----    1 oracle   dba          20, 95 Dec  3 11:59 /dev/asm_128G_16
crw-rw----    1 oracle   dba          20, 69 Dec  3 11:59 /dev/asm_128G_15
crw-rw----    1 oracle   dba          20, 96 Dec  3 11:59 /dev/asm_128G_14
crw-rw----    1 oracle   dba          20, 67 Dec  3 11:59 /dev/asm_128G_13
crw-rw----    1 oracle   dba          20,109 Dec  3 11:59 /dev/asm_128G_12
crw-rw----    1 oracle   dba          20, 72 Dec  3 11:59 /dev/asm_128G_11
crw-rw----    1 oracle   dba          20, 98 Dec  3 11:59 /dev/asm_128G_10
crw-rw----    1 oracle   dba          20, 75 Dec  3 11:59 /dev/asm_128G_1
crw-rw----    1 oracle   dba          20, 91 Dec  3 11:59 /dev/asm_128G_0
crw-rw----    1 oracle   dba          20, 81 Dec  3 11:59 /dev/asm_10G_2
crw-rw----    1 oracle   dba          20,106 Dec  3 11:59 /dev/asm_10G_1
crw-rw----    1 oracle   dba          20, 92 Dec  3 11:59 /dev/asm_10G_0
crw-rw----    1 oracle   dba          20, 23 Dec  3 12:26 /dev/asm_128G_P7_3
crw-rw----    1 oracle   dba          20, 11 Dec  3 12:26 /dev/asm_128G_P0_4
crw-rw----    1 oracle   dba          20,  9 Dec  3 12:26 /dev/asm_10G_P11_1
crw-rw----    1 oracle   dba          20, 10 Dec  3 12:26 /dev/asm_10G_P13_1
crw-rw----    1 oracle   dba          20,  8 Dec  3 12:26 /dev/asm_10G_P12_1


The ASM disk names, group membership and status can be queried within the Oracle database.

$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


set linesize 200
set pagesize 200
column  path format a20
column  DG_NAME format a15
select g.name "DG_NAME", d.name "DG_DISK", d.path, d.OS_MB, d.total_mb, d.create_date, d.mount_date, d.mount_status, d.header_status "DISK TYPE", BYTES_WRITTEN/1024/1024/1024 from v$asm_disk d, v$asm_diskgroup g
where d.group_number = g.group_number
order by 1,2
/


DG_NAME         DG_DISK                        PATH                      OS_MB   TOTAL_MB CREATE_DA MOUNT_DAT MOUNT_S
--------------- ------------------------------ -------------------- ---------- ---------- --------- --------- -------
DATA            DATA_0000                      /dev/asm_128G_P0_4       131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0001                      /dev/asm_128G_P11_1      131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0002                      /dev/asm_128G_P11_2      131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0003                      /dev/asm_128G_P11_3      131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0004                      /dev/asm_128G_P1_4       131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0005                      /dev/asm_128G_P2_4       131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0006                      /dev/asm_128G_P6_2       131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0007                      /dev/asm_128G_P7_1       131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0008                      /dev/asm_128G_P7_2       131072     131072 15-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0009                      /dev/asm_128G_P10_2      131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0010                      /dev/asm_128G_P5_3       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0011                      /dev/asm_128G_P6_1       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0012                      /dev/asm_128G_P6_3       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0013                      /dev/asm_128G_P8_1       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0014                      /dev/asm_128G_P8_2       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0015                      /dev/asm_128G_P8_3       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0016                      /dev/asm_128G_P9_3       131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0017                      /dev/asm_128G_P10_3      131072     131072 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0018                      /dev/asm_16G_P8_1         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0019                      /dev/asm_16G_P8_2         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0020                      /dev/asm_16G_P8_3         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0021                      /dev/asm_16G_P6_3         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0022                      /dev/asm_16G_P7_1         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0023                      /dev/asm_16G_P7_2         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0024                      /dev/asm_16G_P7_3         16384      16384 18-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0025                      /dev/asm_16G_P10_1        16384      16384 29-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0026                      /dev/asm_16G_P10_2        16384      16384 29-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0027                      /dev/asm_16G_P10_3        16384      16384 29-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0028                      /dev/asm_16G_P9_1         16384      16384 29-NOV-12 23-AUG-14 CACHED 
DATA            DATA_0029                      /dev/asm_16G_P9_2         16384      16384 03-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0030                      /dev/asm_16G_P9_3         16384      16384 03-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0031                      /dev/asm_128G_P12_1      131072     131072 04-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0032                      /dev/asm_128G_P12_2      131072     131072 04-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0033                      /dev/asm_128G_P13_7      131072     131072 04-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0034                      /dev/asm_128G_P13_6      131072     131072 04-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0035                      /dev/asm_128G_P13_5      131072     131072 08-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0036                      /dev/asm_128G_P13_4      131072     131072 17-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0037                      /dev/asm_128G_P13_3      131072     131072 17-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0038                      /dev/asm_128G_P13_2      131072     131072 17-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0039                      /dev/asm_128G_P13_1      131072     131072 17-JUN-13 23-AUG-14 CACHED 
DATA            DATA_0040                      /dev/asm_128G_P12_9      131072     131072 17-JUN-13 23-AUG-14 CACHED 
FLASHBACK       FLASHBACK_0000                 /dev/asm_128G_P7_3       131072     131072 15-NOV-12 23-AUG-14 CACHED 
OCRVOTING       OCRVOTING_0000                 /dev/asm_10G_P11_1        10240      10240 09-NOV-12 23-AUG-14 CACHED 
OCRVOTING       OCRVOTING_0001                 /dev/asm_10G_P12_1        10240      10240 09-NOV-12 23-AUG-14 CACHED 
OCRVOTING       OCRVOTING_0002                 /dev/asm_10G_P13_1        10240      10240 09-NOV-12 23-AUG-14 CACHED


The candidate disks to be used to migrate the data to the new SAN storage can be queried within the Oracle Database.
How to tell if disks are Candidates: TOTAL_MB = 0, CREATE_DATE is null, MOUNT_DATE is null, MOUNT_STATUS = CLOSED and DISK TYPE = CANDIDATE or FORMER.
set linesize 132
set pagesize 100
col OS_DISK for a20
select path "OS_DISK", OS_MB, total_mb, create_date, mount_date, mount_status, header_status "DISK TYPE"
from v$asm_disk
where header_status IN('CANDIDATE','FORMER')
order by 1
/


OS_DISK                   OS_MB   TOTAL_MB CREATE_DA MOUNT_DAT MOUNT_S DISK TYPE
-------------------- ---------- ---------- --------- --------- ------- ------------
/dev/asm_10G_0            10240          0                     CLOSED  CANDIDATE
/dev/asm_10G_1            10240          0                     CLOSED  CANDIDATE
/dev/asm_10G_2            10240          0                     CLOSED  CANDIDATE
/dev/asm_128G_0          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_1          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_10         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_11         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_12         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_13         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_14         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_15         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_16         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_17         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_18         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_19         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_2          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_20         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_21         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_22         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_23         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_24         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_25         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_26         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_27         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_28         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_29         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_3          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_30         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_31         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_32         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_33         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_34         131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_4          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_5          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_6          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_7          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_8          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_9          131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_P12_3      131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_P12_4      131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_P12_5      131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_P12_6      131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_P12_7      131072          0                     CLOSED  CANDIDATE
/dev/asm_128G_P12_8      131072          0                     CLOSED  CANDIDATE
/dev/asm_16G_0            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_1            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_10           16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_11           16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_12           16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_2            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_3            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_4            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_5            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_6            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_7            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_8            16384          0                     CLOSED  CANDIDATE
/dev/asm_16G_9            16384          0                     CLOSED  CANDIDATE

57 rows selected.
 
The discovery of available disks is limited to the /dev/asm* path.

SQL> show parameter asm_diskstring

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring                       string      /dev/asm*
SQL>
SQL> exit


--*****************************
--**** 3. Adding new disks ****
--*****************************


Adding the new disks to their respective diskgroups is performed by using the alter diskgroup command.
Please Note: Execute only one ALTER DISKGROUP command at a time and wait for the rebalance process to complete before executing another ALTER DISKGROUP command.

--*********************************
--**** 3.1 DATA DISKGROUP       ***
--*********************************


$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


SQL>

ALTER DISKGROUP DATA ADD DISK
'/dev/asm_128G_0' name DATA_0041 size 131072M,
'/dev/asm_128G_1' name DATA_0042 size 131072M,
'/dev/asm_128G_2' name DATA_0043 size 131072M,
'/dev/asm_128G_3' name DATA_0044 size 131072M,
'/dev/asm_128G_4' name DATA_0045 size 131072M,
'/dev/asm_128G_5' name DATA_0046 size 131072M,
'/dev/asm_128G_6' name DATA_0047 size 131072M,
'/dev/asm_128G_7' name DATA_0048 size 131072M,
'/dev/asm_128G_8' name DATA_0049 size 131072M,
'/dev/asm_128G_9' name DATA_0050 size 131072M,
'/dev/asm_128G_10' name DATA_0051 size 131072M,
'/dev/asm_128G_11' name DATA_0052 size 131072M,
'/dev/asm_128G_12' name DATA_0053 size 131072M,
'/dev/asm_128G_13' name DATA_0054 size 131072M,
'/dev/asm_128G_14' name DATA_0055 size 131072M,
'/dev/asm_128G_15' name DATA_0056 size 131072M,
'/dev/asm_128G_16' name DATA_0057 size 131072M,
'/dev/asm_128G_17' name DATA_0058 size 131072M,
'/dev/asm_128G_18' name DATA_0059 size 131072M,
'/dev/asm_128G_19' name DATA_0060 size 131072M,
'/dev/asm_128G_20' name DATA_0061 size 131072M,
'/dev/asm_128G_21' name DATA_0062 size 131072M,
'/dev/asm_128G_22' name DATA_0063 size 131072M,
'/dev/asm_128G_23' name DATA_0064 size 131072M,
'/dev/asm_128G_24' name DATA_0065 size 131072M,
'/dev/asm_128G_25' name DATA_0066 size 131072M,
'/dev/asm_128G_26' name DATA_0067 size 131072M,
'/dev/asm_128G_27' name DATA_0068 size 131072M,
'/dev/asm_16G_0' name DATA_0069 size 16384M,
'/dev/asm_16G_1' name DATA_0070 size 16384M,
'/dev/asm_16G_2' name DATA_0071 size 16384M,
'/dev/asm_16G_3' name DATA_0072 size 16384M,
'/dev/asm_16G_4' name DATA_0073 size 16384M,
'/dev/asm_16G_5' name DATA_0074 size 16384M,
'/dev/asm_16G_6' name DATA_0075 size 16384M,
'/dev/asm_16G_7' name DATA_0076 size 16384M,
'/dev/asm_16G_8' name DATA_0077 size 16384M,
'/dev/asm_16G_9' name DATA_0078 size 16384M,
'/dev/asm_16G_10' name DATA_0079 size 16384M,
'/dev/asm_16G_11' name DATA_0080 size 16384M,
'/dev/asm_16G_12' name DATA_0081 size 16384M
REBALANCE POWER 5
/


The rebalancing operation can be monitored through the v$asm_operation view. You can also see an estimation on when the rebalancing is supposed to complete.

SQL>

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/


GROUP_NUMBER OPERATION  STATE       POWER      SOFAR   EST_WORK   EST_RATE EST_MINUTES
------------ ---------- ------ ---------- ---------- ---------- ---------- -----------
           1 REBAL      RUN             5      75032     374366       7196          41


set linesize 200
set pagesize 200
column  path format a20
column  DG_NAME format a15
select g.name "DG_NAME", d.name "DG_DISK", d.path, d.OS_MB, d.total_mb, d.create_date, d.mount_date, d.mount_status, d.header_status "DISK TYPE", BYTES_WRITTEN/1024/1024/1024 from v$asm_disk d, v$asm_diskgroup g
where d.group_number = g.group_number
order by 1,2
/


Once completed the operation will disappear from the v$asm_operation view.

SQL> select group_number, operation, est_minutes from v$asm_operation;
no rows selected

--********************************
--**** 3.2 FLASHBACK DISKGROUP  **
--********************************


$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


SQL>

ALTER DISKGROUP FLASHBACK ADD DISK
'/dev/asm_128G_28' name FLASHBACK_0001 size 131072M
REBALANCE POWER 5
/


The rebalancing operation can be monitored through the v$asm_operation view. You can also see an estimation on when the rebalancing is supposed to complete.

SQL> select group_number, operation, est_minutes from
v$asm_operation;

GROUP_NUMBER OPERA EST_MINUTES
------------ ----- -----------
           1 REBAL           4


Once completed the operation will disappear from the v$asm_operation view.

SQL> select group_number, operation, est_minutes from v$asm_operation;
no rows selected

--********************************
--**** 3.3 OCR DISKGROUP  **
--********************************

$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


SQL>

ALTER DISKGROUP OCRVOTING ADD DISK
'/dev/asm_10G_0' name OCRVOTING_0003 size 10240M,
'/dev/asm_10G_1' name OCRVOTING_0004 size 10240M,
'/dev/asm_10G_2' name OCRVOTING_0005 size 10240M
REBALANCE POWER 5
/


The rebalancing operation can be monitored through the v$asm_operation view. You can also see an estimation on when the rebalancing is supposed to complete.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/


GROUP_NUMBER OPERA EST_MINUTES
------------ ----- -----------
           1 REBAL           4


Once completed the operation will disappear from the v$asm_operation view.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/

no rows selected
SQL>

--*******************************
--**** 4. Remove the old disks **
--*******************************

Finally, remove the old disks:

Please Note: Execute only one ALTER DISKGROUP command at a time and wait for the rebalance process to complete before executing another ALTER DISKGROUP command.

--********************************
--**** 4.1 DATA DISKGROUP       **
--********************************


$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


SQL> ALTER DISKGROUP DATA DROP DISK DATA_0000, DATA_0001, DATA_0002, DATA_0003, DATA_0004, DATA_0005, DATA_0006, DATA_0007, DATA_0008, DATA_0009, DATA_0010, DATA_0011, DATA_0012, DATA_0013, DATA_0014, DATA_0015, DATA_0016, DATA_0017, DATA_0018, DATA_0019, DATA_0020  rebalance power 5;

SQL> ALTER DISKGROUP DATA DROP DISK DATA_0021 DATA_0022, DATA_0023, DATA_0024, DATA_0025, DATA_0026, DATA_0027, DATA_0028, DATA_0029, DATA_0030, DATA_0031, DATA_0032, DATA_0033 DATA_0034, DATA_0035, DATA_0036, DATA_0037, DATA_0038, DATA_0039, DATA_0040 rebalance power 5;

--Alternatively, you can use one command by executing the following.
ALTER DISKGROUP DATA DROP DISK
DATA_0000,
DATA_0001,
DATA_0002,
DATA_0003,
DATA_0004,
DATA_0005,
DATA_0006,
DATA_0007,
DATA_0008,
DATA_0009,
DATA_0010,
DATA_0011,
DATA_0012,
DATA_0013,
DATA_0014,
DATA_0015,
DATA_0016,
DATA_0017,
DATA_0018,
DATA_0019,
DATA_0020,
DATA_0021,
DATA_0022,
DATA_0023,
DATA_0024,
DATA_0025,
DATA_0026,
DATA_0027,
DATA_0028,
DATA_0029,
DATA_0030,
DATA_0031,
DATA_0032,
DATA_0033,
DATA_0034,
DATA_0035,
DATA_0036,
DATA_0037,
DATA_0038,
DATA_0039,
DATA_0040 rebalance power 5;


Monitor the rebalancing operation through the v$asm_operation view. You can also see an estimation on when the rebalancing is supposed to complete.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/


GROUP_NUMBER OPERA EST_MINUTES
------------ ----- -----------
           1 REBAL           4


Once completed the operation will disappear from the v$asm_operation view.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/

no rows selected
SQL>

Checking v$asm_disk shows the OLD ASM disks as FORMER, meaning that they were cleanly dropped and it is now safe to remove them from the machine.

SQL> select path, header_status, mode_status from v$asm_disk;

--********************************
--**** 4.2 FLASHBACK DISKGROUP  **
--********************************


$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


SQL> ALTER DISKGROUP FLASHBACK DROP DISK FLASHBACK_0000 rebalance power 5;

Monitor the rebalancing operation through the v$asm_operation view. You can also see an estimation on when the rebalancing is supposed to complete.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/


GROUP_NUMBER OPERA EST_MINUTES
------------ ----- -----------
           1 REBAL           4


Once completed the operation will disappear from the v$asm_operation view.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/

no rows selected
SQL>

Checking v$asm_disk shows the OLD ASM disks as FORMER, meaning that they were cleanly dropped and it is now safe to remove them from the machine.

SQL> select path, header_status, mode_status from v$asm_disk;

--********************************
--**** 4.2 OCRVOTING DISKGROUP  **
--********************************


$ export ORACLE_SID=+ASM1
$ . oraenv
$
$ sqlplus / as sysasm


SQL> ALTER DISKGROUP OCRVOTING DROP DISK OCRVOTING_0000, OCRVOTING_0001, OCRVOTING_0002 rebalance power 5;

Monitor the rebalancing operation through the v$asm_operation view. You can also see an estimation on when the rebalancing is supposed to complete.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/


GROUP_NUMBER OPERA EST_MINUTES
------------ ----- -----------
           1 REBAL           4


Once completed the operation will disappear from the v$asm_operation view.

col OPERATION for a10
col STATE for a6
select GROUP_NUMBER,OPERATION,STATE,POWER,SOFAR,EST_WORK,EST_RATE,EST_MINUTES from v$asm_operation
/

no rows selected
SQL>

Checking v$asm_disk shows the OLD ASM disks as FORMER, meaning that they were cleanly dropped and it is now safe to remove them from the machine.

SQL> select path, header_status, mode_status from v$asm_disk;

No comments:

Post a Comment