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