Chér(e)s Ami(e)s en oracle
Je tenais à partager avec vous une procédure que j’ai mis en place pour l’ajout d’un disque dans un disque groupe ASM sur un environnement windows 2008.
Pré-requis et informations importantes :
Recommandations :
- L’opération étant coûteuse en I/O, il est vivement recommandé de planifier cette intervention lors d’une période d’activité faible de l’instance (Week-end)
Pré-requis :
- Le disque physique devant être rattaché à l’ASM doit être visible par le Système d’Exploitation
- La partition du disque doit être créée mais pas formatée (RAW device)
- Dans l’utilitaire disk management ->click droit sur le nouveau disque non formaté ->New simple volum -> do not assiggn adrive letter or drive path -> do not format this volume -> Finish
Tâche Préalable
- Se connecter sur la machine cible
- Lancer un invité de commande PowerShell
- PS>asmtoolg
Selection du disk candidat et nommage :
- PS> $env:ORACLE_SID=’+ASM’*
- PS> sqlplus / as sysasm
SQL> set linesize 600;
SQL> col path format a30;
SQL> SELECT name, header_status, path FROM V$ASM_DISK;
- Se connecter en tant que SYSASM à l’instance ASM :
Une fois le disque crée, lancer la commande asmtoolg afin de mettre un stamp sur le disque
PS> $env:ORACLE_SID=’+ASM’
PS> sqlplus / as sysasm
SQL> SELECT name, header_status, path FROM V$ASM_DISK;
- Lancer la commande suivante pour vérifier que le nouveau disque est bien visible par ASM (et avec les bons droits) :
PS> kfod disk=all
- En prévision de l’opération, lancer ASMCMD et sauvegarder les MetaDonnées du diskgroup qui va être modifié :
PS> asmcmd
asmcmd> md_backup <Fichier de sauvegarde> -G <DiskGroup>
Par exemple, pour le DiskGroup MP:
asmcmd> md_backup D:\Oracle\MP_metadatas.txt -G MP
Lancement de l’ajout du disque ASM
- Lancer la commande SQL suivante et récupérer la valeur du « path » du disque candidat ajouté.
Le champ « header_status » doit obligatoirement être à la valeur « CANDIDATE » ou « PROVISIONED » pour que le disque puisse être ajouté :
SQL> SELECT name, header_status, path FROM V$ASM_DISK;
- En utilisant ce PATH, ajouter le disque et nommez-le de manière cohérente par rapport au nommage des disques déjà existants :
SQL> ALTER DISKGROUP MP ADD DISK ‘<PATH>’ NAME ‘<NOM>’;
Par exemple :
SQL> ALTER DISKGROUP MP ADD DISK ‘\\.\ORCLDISKDATA70’ NAME MP_0005;
L’opération va prendre un certain temps (dépendant de la volumétrie), car un rééquilibrage va être exécuté et répartir les données sur l’ensemble des disques du DiskGroup.
Nous pouvons suivre l’avancement de l’opération avec la requête suivante :
SQL> SELECT * FROM V$ASM_OPERATION;
Les champs retournés par la requête permettent d’avoir les informations suivantes :
- STATE : Etat actuel de l’opération. Il faut que cette opération soit RUN.
- SOFAR : Nombre d’unités d’allocation traités
- EST_WORK : Nombre d’unités d’allocation à traiter
- EST_RATE : Nombre d’unités d’allocation traités par minute
- EST_MINUTES : Minutes restantes à l’opération pour aboutir
Vérification et validation
Afin de confirmer l’ajout de l’espace dans le DiskGroup, nous pouvons lancer la commande ASMCMD suivante :
PS> $env:ORACLE_SID=’+ASM’
PS> asmcmd
asmcmd> lsdg
SQL>SELECT MOUNT_STATUS,HEADER_STATUS,MODE_STATUS,STATE,TOTAL_MB,FREE_MB,NAME,PATH,LABEL
FROM V$ASM_DISK;
Aussi, une vérification de l’alert log de l’instance ASM permettra de confirmer qu’aucune erreur n’est intervenue pendant l’opération.
Sur les environnements PROD, nous pouvons trouver le log dans le dossier suivant :
D:\Oracle\product\11.2.0\grid\log\diag\asm\+asm\+asm\trace\alert_+asm.log
OraclementVotre