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
- Detuvimos la base .
- Detuvimos los listener.
- 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 !