====== Migrer Diskgroup OCR ======
Il s'agit du diskgroup **OCR** avec redondance //normal// sur 3 disques (perte 1 disque toléré).
Ce diskgroup est particulier, car il contient les OCR,OLR et les voting disks.
* Afficher l'articulation des DISKGROUP:
SQL>
SET lines 800
column disk_group_name format a30
column PATH format a50
column disk_file_name format a30
column FAILGROUP_TYPE format a20
SELECT NVL(a.name, '[CANDIDATE]') disk_group_name, b.PATH, b.name disk_file_name, a.TYPE
FROM v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY a.name;
DISK_GROUP_NAME PATH DISK_FILE_NAME TYPE
------------------------------ -------------------------------------------------- ------------------------------ ------
DATA /dev/oracleasm/disks/ASM_DATA1 DATA_0000 NORMAL
DATA /dev/oracleasm/disks/ASM_DATA2 DATA_0001 NORMAL
DATA /dev/oracleasm/disks/ASM_DATA3 DATA_0002 NORMAL
FRA /dev/oracleasm/disks/ASM_FRA1 FRA_0000 EXTERN
OCR /dev/oracleasm/disks/ASM_OCR2 OCR_0001 NORMAL
OCR /dev/oracleasm/disks/ASM_OCR1 OCR_0002 NORMAL
OCR /dev/oracleasm/disks/ASM_OCR3 OCR_0000 NORMAL
__**Ajout disques**__
* ajouter 3 nouveaux disques au niveau OS et y créer une partition primaire
* nous devons ensuite les initialiser par ASM:
[root@oracle2 bin]# oracleasm createdisk ASM_OCR4 /dev/sdl1
[root@oracle2 bin]# oracleasm createdisk ASM_OCR5 /dev/sdm1
[root@oracle2 bin]# oracleasm createdisk ASM_OCR6 /dev/sdn1
* on rafraichi les disques ASM sur l'autre noeud RAC
[root@oracle3 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "ASM_OCR6"
Instantiating disk "ASM_OCR5"
Instantiating disk "ASM_OCR4"
[root@oracle3 ~]# oracleasm listdisks
ASM_DATA4
ASM_DATA5
ASM_DATA6
ASM_FRA2
ASM_OCR1
ASM_OCR2
ASM_OCR3
ASM_OCR4
ASM_OCR5
ASM_OCR6
* Une fois nos disques initialisés, ils sont disponibles dans ASM
SQL>
set lines 800
col disk_file_path format A40
SELECT a.name disk_group_name
, b.path disk_file_path
, b.name disk_file_name
, b.failgroup disk_file_fail_group
FROM v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY a.name;
DISK_GROUP_NAME DISK_FILE_PATH DISK_FILE_NAME DISK_FILE_FAIL_GROUP
------------------------------ ---------------------------------------- ------------------------------ ------------------------------
DATA /dev/oracleasm/disks/ASM_DATA6 DATA_0005 DATA_0005
DATA /dev/oracleasm/disks/ASM_DATA4 DATA_0003 DATA_0003
DATA /dev/oracleasm/disks/ASM_DATA5 DATA_0004 DATA_0004
FRA /dev/oracleasm/disks/ASM_FRA2 FRA_0001 FRA_0001
OCR /dev/oracleasm/disks/ASM_OCR1 OCR_0002 OCR_0002
OCR /dev/oracleasm/disks/ASM_OCR3 OCR_0000 OCR_0000
OCR /dev/oracleasm/disks/ASM_OCR2 OCR_0001 OCR_0001
/dev/oracleasm/disks/ASM_OCR6
/dev/oracleasm/disks/ASM_OCR5
/dev/oracleasm/disks/ASM_OCR4
10 rows selected.
* Nous les ajoutons au Diskgroup **DATA** et lançons un //rebalance// des données.
* à noter que plus l'option **//POWER X//** est grande, plus il y aura de consommation CPU, IO disque et plus vite la reconstruction des bandes de parité et le transfert des données sera rapide (//integer// de 0 à 1024, où 0=annulation)
* ici la volumétrie des **OCR** est suffisament faible pour mettre un //POWER 50//)
SQL> alter diskgroup OCR add disk '/dev/oracleasm/disks/ASM_OCR4','/dev/oracleasm/disks/ASM_OCR5','/dev/oracleasm/disks/ASM_OCR6' rebalance power 50;
Diskgroup altered.
* suivi de l'opération
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA PASS STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE CON_ID
------------ ----- --------- ---- ---------- ---------- ---------- ---------- ---------- ----------- -------------------------------------------- ----------
3 REBAL COMPACT RUN 50 50 0 0 0 0 0
3 REBAL REBALANCE DONE 50 50 109 109 0 0 0
3 REBAL REBUILD DONE 50 50 0 0 0 0 0
3 REBAL RESYNC DONE 50 50 0 0 0 0 0
== Suppression des disques ==
SQL>
set lines 800
column disk_group_name format a30
column path format a50
column disk_file_name format a50
SELECT NVL(a.name, '[CANDIDATE]') disk_group_name, b.path, b.name disk_file_name
FROM v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY a.name;
DISK_GROUP_NAME PATH DISK_FILE_NAME
------------------------------ -------------------------------------------------- --------------------------------------------------
DATA /dev/oracleasm/disks/ASM_DATA4 DATA_0003
DATA /dev/oracleasm/disks/ASM_DATA5 DATA_0004
DATA /dev/oracleasm/disks/ASM_DATA6 DATA_0005
FRA /dev/oracleasm/disks/ASM_FRA2 FRA_0001
OCR /dev/oracleasm/disks/ASM_OCR6 OCR_0005
OCR /dev/oracleasm/disks/ASM_OCR5 OCR_0004
OCR /dev/oracleasm/disks/ASM_OCR2 OCR_0001
OCR /dev/oracleasm/disks/ASM_OCR4 OCR_0003
OCR /dev/oracleasm/disks/ASM_OCR3 OCR_0000
OCR /dev/oracleasm/disks/ASM_OCR1 OCR_0002
10 rows selected.
SQL> alter diskgroup OCR drop disk OCR_0000,OCR_0001,OCR_0002 rebalance power 50;
Diskgroup altered.
* suivi de l'opération
SQL> select * from v$asm_operation;
no rows selected
* une fois terminé, les disques enlevés sont en **MOUNT_STATE=CLOSED**
SQL> set lines 1000
col PATH format A50
col FAILGROUP_TYPE format A20
select PATH,MOUNT_STATUS,MODE_STATUS,STATE,REDUNDANCY,TOTAL_MB/1024 "TOTAL GB",FREE_MB/1024 "FREE GB",FAILGROUP_TYPE from v$asm_disk;
PATH MOUNT_S MODE_ST STATE REDUNDA TOTAL GB FREE GB FAILGROUP_TYPE
-------------------------------------------------- ------- ------- -------- ------- ---------- ---------- --------------------
/dev/oracleasm/disks/ASM_OCR2 CLOSED ONLINE NORMAL UNKNOWN 0 0 REGULAR <-----
/dev/oracleasm/disks/ASM_OCR3 CLOSED ONLINE NORMAL UNKNOWN 0 0 REGULAR <-----
/dev/oracleasm/disks/ASM_OCR1 CLOSED ONLINE NORMAL UNKNOWN 0 0 REGULAR <-----
/dev/oracleasm/disks/ASM_OCR4 CACHED ONLINE NORMAL UNKNOWN 9.99609375 9.66796875 REGULAR
/dev/oracleasm/disks/ASM_FRA2 CACHED ONLINE NORMAL UNKNOWN 39.9990234 35.8339844 REGULAR
/dev/oracleasm/disks/ASM_OCR5 CACHED ONLINE NORMAL UNKNOWN 9.99609375 9.6640625 REGULAR
/dev/oracleasm/disks/ASM_DATA6 CACHED ONLINE NORMAL UNKNOWN 19.9990234 12.1269531 REGULAR
/dev/oracleasm/disks/ASM_DATA5 CACHED ONLINE NORMAL UNKNOWN 19.9990234 12.1269531 REGULAR
/dev/oracleasm/disks/ASM_DATA4 CACHED ONLINE NORMAL UNKNOWN 19.9990234 12.1259766 REGULAR
/dev/oracleasm/disks/ASM_OCR6 CACHED ONLINE NORMAL UNKNOWN 9.99609375 9.671875 REGULAR
10 rows selected.
* Il ne reste plus qu'à les supprimer d'ASM, pour les rendre à l'OS
[root@oracle2 bin]# oracleasm deletedisk ASM_OCR1
Clearing disk header: done
Dropping disk: done
[root@oracle2 bin]# oracleasm deletedisk ASM_OCR2
Clearing disk header: done
Dropping disk: done
[root@oracle2 bin]# oracleasm deletedisk ASM_OCR3
Clearing disk header: done
Dropping disk: done
[root@oracle2 bin]#
[root@oracle2 bin]#
[root@oracle2 bin]# oracleasm listdisks
ASM_DATA4
ASM_DATA5
ASM_DATA6
ASM_FRA2
ASM_OCR4
ASM_OCR5
ASM_OCR6
[root@oracle2 bin]#
* on rafraichi les disques ASM sur l'autre noeud RAC
[root@oracle3 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Cleaning disk "ASM_OCR1"
Cleaning disk "ASM_OCR2"
Cleaning disk "ASM_OCR3"
Scanning system for ASM disks...
[root@oracle3 ~]#
[root@oracle3 ~]#
[root@oracle3 ~]# oracleasm listdisks
ASM_DATA4
ASM_DATA5
ASM_DATA6
ASM_FRA2
ASM_OCR4
ASM_OCR5
ASM_OCR6
* on valide l'état de nos VOTEDISK sur le noeud1
[root@oracle2 bin]# ./crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 5643ad2acdc64f18bf02d801c68fe657 (/dev/oracleasm/disks/ASM_OCR4) [OCR]
2. ONLINE be3aab53696d4f82bfcd958d3f4b2c33 (/dev/oracleasm/disks/ASM_OCR5) [OCR]
3. ONLINE b8c35a5752764f4dbf4bee3c7f1a3899 (/dev/oracleasm/disks/ASM_OCR6) [OCR]
Located 3 voting disk(s).
[root@oracle2 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84388
Available space (kbytes) : 407296
ID : 897499287
Device/File Name : +OCR
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check succeeded
* on valide aussi l'état de nos VOTEDISK sur le noeud2
[root@oracle3 bin]# ./crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 5643ad2acdc64f18bf02d801c68fe657 (/dev/oracleasm/disks/ASM_OCR4) [OCR]
2. ONLINE be3aab53696d4f82bfcd958d3f4b2c33 (/dev/oracleasm/disks/ASM_OCR5) [OCR]
3. ONLINE b8c35a5752764f4dbf4bee3c7f1a3899 (/dev/oracleasm/disks/ASM_OCR6) [OCR]
Located 3 voting disk(s).
[root@oracle3 bin]#
[root@oracle3 bin]#
[root@oracle3 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84388
Available space (kbytes) : 407296
ID : 897499287
Device/File Name : +OCR
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check succeeded
[root@oracle3 bin]#