Comment augmenter un disque groupe sur un RAC avec ASM
Vérification qu’il s’agit d’un RAC
Se connecter sur l’instance et faire un « select INSTANCE_NAME,HOST_NAME from gv$instance » :
oracle@TEST:INSTANCE_1:/home/oracle $ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Mer. Janv. 25 14:37:09 2017 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> select INSTANCE_NAME,HOST_NAME from gv$instance; INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- INSTANCE_1 HOST_TEST INSTANCE_2 HOST_TEST_2 #on est bien sur un RAC
Augmentation du disque groupe
1- Présenter la même LUN sur les 2 serveurs du RAC
2- Nommer la LUN dans le multipath (ici DGDATA_TEST2_LUN_2 qui fait 30Go)
multipaths { multipath { wwid 364580e8013307f085020307f5404y2i7 alias DGDATA_TEST2_LUN_1 } multipath { wwid 360080e8013307f085020307f54003oo7 alias DGDATA_TEST2_LUN_2 } }
Puis « multipath -r » (pour faire un reload du service multipath).
Vérifier si c’est OK :
root@TEST: multipath -l | grep DGDATA_TEST2_LUN_2 DGDATA_TEST2_LUN_2 (360080e8013307f085020307f54003oo7) dm-12 HITACHI,OPEN-V
3- Vérifier que « DGDATA_TEST2_LUN_2 » est bien présente dans « /dev/oracle »
root@TEST: ls /dev/oracle | grep DGDATA_TEST2_LUN_2 brw-r----- 1 oracle dba 253, 53 Jan 25 14:52 DGDATA_TEST2_LUN_2
Si non présent, il faut relancer udev.
4- Se connecter à l’instance ASM et faire un « lsdg » pour voir la liste des disque groupe :
oracle@TEST:+ASM1:/home/oracle
$ asmcmd
ASMCMD> lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 4096 1048576 61440 2654 0 2654 0 N DGDATA_TEST1/
MOUNTED EXTERN N 512 4096 1048576 61440 31 0 31 0 N DGDATA_TEST2/
Nous voulons par exemple étendre le DG DGDATA_TEST2 car il reste 31Mb.
Avec la commande « lsdsk -k -G DGDATA_TEST2 » nous pouvons voir les disques existants sur ce DG :
ASMCMD> lsdsk -k -G DGDATA_TEST2 Total_MB Free_MB OS_MB Name Failgroup Failgroup_Type Library Label UDID Product Redund Path 61440 31 61440 DGDATA_TEST2_LUN_1 DGDATA_TEST2_DLUN_1 REGULAR System UNKNOWN /dev/oracle/DGDATA_TEST2_LUN1
Le disque présent (DGDATA_TEST2_LUN_1) fait donc 60Go et il reste bien 31Mo de libre.
On peut donc maintenant ajouter notre dique « DGDATA_TEST2_LUN_2 » au DG avec la commande « alter diskgroup DGDATA_TEST2 add disk ‘/dev/oracle/DGDATA_TEST2_LUN_2’; » en se connectant en « sysasm » :
oracle@TEST:+ASM1:/home/oracle $ sqlplus / as sysasm SQL> alter diskgroup DGDATA_TEST2 add disk '/dev/oracle/DGDATA_TEST2_LUN_2'; Diskgroup altered.
Vérification :
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 61440 2654 0 2654 0 N DGDATA_TEST1/ MOUNTED EXTERN N 512 4096 1048576 61440 30031 0 30031 0 N DGDATA_TEST2/ ASMCMD> lsdsk -k -G DGDATA_TEST2 Total_MB Free_MB OS_MB Name Failgroup Failgroup_Type Library Label UDID Product Redund Path 61440 31 61440 DGDATA_TEST2_LUN_1 DGDATA_TEST2_DLUN_1 REGULAR System UNKNOWN /dev/oracle/DGDATA_TEST2_LUN1 30000 30000 61440 DGDATA_TEST2_LUN_2 DGDATA_TEST2_DLUN_2 REGULAR System UNKNOWN /dev/oracle/DGDATA_TEST2_LUN2