Comment corriger l'état inconnu de la ressource Oracle RAC

Très souvent, vous pouvez obtenir Ressources Oracle RAC dans un état inconnu, ce qui est assez ennuyeux car vous ne pourrez pas utiliser la fonction srvctl de gérer cette ressource, de la démarrer et de l'arrêter.

Il existe un moyen d'y remédier et je vais vous montrer comment j'ai résolu ce problème dans un Exadata RAC à 2 nœuds.

Commençons par vérifier une ressource qui se trouve dans un état inconnu :

[oracle@xjhd01db02:PRO02INT2 ~]$ crsctl status res ora.pro02int.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.pro02int.db
      1        ONLINE  ONLINE       xjhd01db01             Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             .0/dbhome_1,STABLE
      2        ONLINE  UNKNOWN      xjhd01db02             STABLE
--------------------------------------------------------------------------------

La ressource du nœud 2 est dans un état inconnu.

J'essaie d'abord d'arrêter et de supprimer l'instance, mais le cluster ne me le permet pas.

[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl stop instance -d PRO02INT -i PRO02INT2
PRCR-1191 : The stop request failed because the resource is not running on nodes xjhd01db02.
[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl remove instance -d PRO02INT -i PRO02INT2
Remove instance from the database PRO02INT? (y/[n]) y
PRKO-3147 : Instance PRO02INT2 cannot be removed because it is the only preferred instance for service(s) PRO02INT_bkup1,PRO02INT_bkup2 for database PRO02INT

Il indique que je ne peux pas supprimer l'instance parce que deux services ont cette instance comme préférée.

Je modifie ces ressources pour que l'autre instance soit privilégiée.

[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl modify service -d PRO02INT -s PRO02INT_bkup1 -n -i PRO02INT1
[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl modify service -d PRO02INT -s PRO02INT_bkup2 -n -i PRO02INT1

Je peux donc supprimer l'instance et l'ajouter à nouveau.

[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl remove instance -d PRO02INT -i PRO02INT2
Remove instance from the database PRO02INT? (y/[n]) y
[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl add instance -d PRO02INT -i PRO02INT2 -n xjhd01db02

Je vérifie à nouveau et je constate que la ressource est désormais hors ligne.

Bonnes nouvelles 🙂 .

[oracle@xjhd01db02:PRO02INT2 ~]$ crsctl status res ora.pro02int.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.pro02int.db
      1        ONLINE  ONLINE       xjhd01db01             Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             .0/dbhome_1,STABLE
      2        OFFLINE OFFLINE                               STABLE
--------------------------------------------------------------------------------

Je peux maintenant démarrer l'instance.

[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl start instance -d PRO02INT -i PRO02INT2

Je vérifie les services et tout fonctionne correctement.

[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl status database -d PRO02INT
Instance PRO02INT1 is running on node xjhd01db01
Instance PRO02INT2 is running on node xjhd01db02
[oracle@xjhd01db02:PRO02INT2 ~]$ srvctl status service -d PRO02INT
Service PRO02INT_bkup1 is running on instance(s) PRO02INT1
Service PRO02INT_bkup2 is running on instance(s) PRO02INT1
Service PRO02INTplug is running on instance(s) PRO02INT1

J'espère que cela vous a été utile.

Laisser un commentaire

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