meta données pour cette page
Ceci est une ancienne révision du document !
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