Oracle RAC | PRKP-1024 : The service ha_gsqs is still running when removing a service

Español: estructura de base de datos de Oracle

PRKP-1024 : The service ha_gsqs is still running when removing a service

En un escenario donde tenemos bases de datos 10gR2 , 11gR1 y 11gR2 me toco hacer revisiones de alta disponibilidad.

Luego de ello se tomo la determinación que algunas bases serian removidas y transportadas a otros servidores.

Los servidores antiguos de bases de datos serian reutilizados para soportar aplicaciones BI.

Al momento de quitar la primera base clusterizada (10.2.0.4) y sus servicios nos encontramos con el siguiente error:

PRKP-1024 : The service OSSER02 is still running.

Veamos que ocurrió paso a paso…

Extrayendo el error

  1. Detuvimos la base .
  2. Detuvimos los listener.
  3. Bajamos los servicios.
[oracle@proctec01 dbs]$ srvctl status service -d PROTEN
Service OSPRO01 is not running.
Service OSSER02 is not running.

Cuando intentamos quitar  los servicios ocurre nuestro error:

[oracle@proctec01 dbs]$ srvctl remove service -d PROTEN -s OSSER02
OSSER02 PREF: PROTEN2 PROTEN1 AVAIL: 
Remove service OSSER02 from the database PROTEN? (y/[n]) y
PRKP-1024 : The service OSSER02 is still running.
[oracle@proctec01 dbs]$ srvctl remove service -d PROTEN -s OSPRO01
OSPRO01 PREF: PROTEN2 PROTEN1 AVAIL: 
Remove service OSPRO01 from the database PROTEN? (y/[n]) y
PRKP-1024 : The service OSPRO01 is still running.

Solución

Comienzo por revisar los servicios en que estado se encuentran. Y por lo que pueden observar a continuación se encuentran en modo OFFLINE.

[root@proctec01 ~]# /u01/app/11.2.0/grid/bin/crsctl status resource -t | egrep -A 3 PROTEN
ora.PROTEN.lsnr
 OFFLINE OFFLINE proctec01 
 OFFLINE OFFLINE proctec02 
ora.asm
--
ora.PROTEN.OSSER02.PROTEN1.srv
 1 OFFLINE OFFLINE 
ora.PROTEN.OSSER02.PROTEN2.srv
 1 OFFLINE OFFLINE 
ora.PROTEN.OSSER02.cs
 1 ONLINE OFFLINE 
ora.PROTEN.OSPRO01.PROTEN1.srv
 1 OFFLINE OFFLINE 
ora.PROTEN.OSPRO01.PROTEN2.srv
 1 OFFLINE OFFLINE 
ora.PROTEN.OSPRO01.cs
 1 ONLINE OFFLINE 
ora.PROTEN.PROTEN1.inst
 1 OFFLINE OFFLINE 
ora.PROTEN.PROTEN2.inst
 1 OFFLINE OFFLINE 
ora.PROTEN.db
 1 OFFLINE OFFLINE 
ora.cvu
 1 ONLINE ONLINE proctec01 
[root@proctec01 ~]#

Ahora debemos revisar en nuestros nodos si los recursos de cluster  quedaron activos.

crs_stat -p | grep srv
crs_stat -p | grep cs

Procedemos a detener esos servicios de cluster.

[root@proctec01 ~]# /u01/app/11.2.0/grid/bin/crsctl stop resource ora.PROTEN.OSSER02.cs
[root@proctec01 ~]# /u01/app/11.2.0/grid/bin/crsctl stop resource ora.PROTEN.OSPRO01.cs 

Ahora podemos remover el servicio de la base.

[oracle@proctec01 dbs]$ srvctl remove service -d PROTEN -s OSPRO01
OSPRO01 PREF: PROTEN2 PROTEN1 AVAIL: 
Remove service OSPRO01 from the database PROTEN? (y/[n]) y[oracle@proctec01 dbs]$ srvctl remove service -d PROTEN -s OSSER02
OSSER02 PREF: PROTEN2 PROTEN1 AVAIL: 
Remove service OSSER02 from the database PROTEN? (y/[n]) y

Espero les haya sido de utilidad, Saludos a los colegas Españoles desde Argentina !