Clusterware : Gestion des Ressources et dépendances

Chaque élément d’un RAC (Instance, diskgroup, listener etc.. ) est considéré comme une ressource du clusterware.

Ces ressources peuvent être liées entre elles via des dépendances.

Par exemple, une instance, pour démarrer, est dépendante de l’instance ASM. Tant que l’instance ASM n’est pas démarrée, l’instance de base de données ne va pas démarrer.

Cependant, il arrive qu’une ressource n’ai pas de dépendance, soit parce qu’elle a mal été créée, soit parce que vous souhaitez créer un ordre de démarrage entre plusieurs ressources.

Nous avons eu ce cas récemment :

Suite à l’éviction d’un nœud,  2 des 3 instances ont correctement été redémarrées. Après analyse des logs, nous avons découvert que l’instance ASM a pris davantage de temps que d’habitude pour démarrer, ce qui a provoqué l’échec du démarrage d’une instance. Au final, nous avons du démarrer l’instance manuellement.

Pour détecter ce problème, nous avons parcouru le fichier crsd.log et nous avons trouvé :

2013-02-06 10:27:28.240: [ CRSRES][1493616960] Start of `ora.DB.DB2.inst` on member `server2` failed.
...
2013-02-06 10:27:32.124: [ CRSRES][1489414464] Start of `ora.server2.ASM2.asm` on member `server2` succeeded.

On remarque que l’instance a tenté un démarrage quelques secondes avant l’instance ASM, mais a échoué car les points de montages ASM n’étaient pas encore disponible.

La cause de ce problème vient du fait que la ressource ora.DB.DB2.inst n’a pas pour dépendance la ressource ora.server2.ASM2.asm :

[oracle@server2 ~]$ crs_stat -p | grep 'NAME=ora.|REQ'
NAME=ora.DB.DB1.inst
REQUIRED_RESOURCES=ora.server1.ASM1.asm 
NAME=ora.DB.DB2.inst
REQUIRED_RESOURCES=
NAME=ora.DB.db
REQUIRED_RESOURCES=

Pour corriger ce problème, il suffit alors d’exécuter la requête suivante :

[oracle@server2 ~]$ srvctl modify instance -d DB -i DB2 -s +ASM2 

On a donc maintenant :

[oracle@server2 ~]$ crs_stat -p | grep 'NAME=ora.|REQ'
NAME=ora.DB.DB1.inst
 REQUIRED_RESOURCES=ora.server1.ASM1.asm
 NAME=ora.DB.DB2.inst
 REQUIRED_RESOURCES=ora.server2.ASM2.asm
 NAME=ora.DB.db
 REQUIRED_RESOURCES=

1 réflexion sur “Clusterware : Gestion des Ressources et dépendances”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *