Cómo Solucionar el Estado Desconocido de los Recursos de Oracle RAC

A menudo se puede conseguir Recursos de Oracle RAC en un estado desconocido y esto es bastante molesto porque usted no será capaz de utilizar srvctl para gestionar ese recurso, para ponerlos en marcha y pararlos.

Hay una forma de solucionarlo y os voy a mostrar cómo lo he resuelto en un Exadata RAC de 2 nodos.

Comprobemos primero un recurso que se encuentra en estado desconocido:

[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
--------------------------------------------------------------------------------

El recurso en el nodo 2 está en estado desconocido.

Primero intento parar y eliminar la instancia, pero el cluster no me deja.

[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

Dice que no puedo eliminar la instancia porque dos servicios tienen esa instancia como preferida.

Modifico esos recursos para tener la otra instancia como preferida.

[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

Así que ahora puedo eliminar la instancia y añadirla de nuevo.

[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

Vuelvo a comprobarlo y veo que el recurso está ahora fuera de línea.

Buenas noticias 🙂 .

[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
--------------------------------------------------------------------------------

Ahora puedo iniciar la instancia.

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

Compruebo los servicios y todo funciona correctamente.

[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

Espero que te haya sido útil.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *