En entornos Oracle RAC, al crear un servicio se pueden definir instancias preferidas y disponibles. Por defecto el servicio se ejecutará en la instancia preferida. Si la instancia preferida falla o el nodo entero queda inaccesible, el servicio se moverá automáticamente a una de las instancias disponibles. Tras restaurarse la instancia preferida, el servicio no vuelve automáticamente a ella salvo que se realice una relocación manual o se defina el parámetro de failback en versiones que lo soporten.
Ejemplo en Oracle 11g: crear un servicio llamado mysrv que prefiera instance1 y tenga instance2 como disponible
[grid@node1 ~]$ crsctl query crs releaseversionOracle High Availability Services release version on the local node is [11.2.0.4.0][oracle@node1 ~]$ srvctl add service -d mydb -s mysrv -r instance1 -a instance2Al arrancar el servicio se observa que se está ejecutando en la instancia preferida
[oracle@node1 ~]$ srvctl start service -d mydb -s mysrv[oracle@node1 ~]$ srvctl status service -d mydb -s mysrvService mysrv is running on instance(s) instance1Si la instancia preferida falla se para el proceso y el servicio se reubica automáticamente en la instancia disponible
[oracle@node1 ~]$ srvctl stop instance -d mydb -i instance1 -f[oracle@node1 ~]$ srvctl status service -d mydb -s mysrvService mysrv is running on instance(s) instance2Tras reiniciar instance1 el servicio permanece en instance2 y no vuelve por sí solo a la instancia preferida. Para devolver el servicio manualmente se ejecuta una relocación
[oracle@node1 ~]$ srvctl start instance -d mydb -i instance1[oracle@node1 ~]$ srvctl status service -d mydb -s mysrvService mysrv is running on instance(s) instance2[oracle@node1 ~]$ srvctl relocate service -d mydb -s mysrv -i instance2 -t instance1[oracle@node1 ~]$ srvctl status service -d mydb -s mysrvService mysrv is running on instance(s) instance1Novedad en Oracle 19c: failback automático. A partir de Oracle 19c se introdujo el parámetro failback en el comando srvctl add service, lo que permite que un servicio se relocalice automáticamente de nuevo a su instancia preferida cuando esta vuelve a estar disponible.
Ejemplo en Oracle 19c creando dos servicios, uno sin failback y otro con failback habilitado
[grid@node1 ~]$ crsctl query crs releaseversionOracle High Availability Services release version on the local node is [19.0.0.0.0][oracle@node1 ~]$ srvctl add service -d db19c -service srv_nonfailback -preferred instance1 -available instance2[oracle@node1 ~]$ srvctl add service -d db19c -service srv_failback -preferred instance1 -available instance2 -failback YES[oracle@node1 ~]$ srvctl config service -d db19c | egrep -i Service name | egrep -i instancesService name: srv_failbackPreferred instances: instance1Available instances: instance2Service name: srv_nonfailbackPreferred instances: instance1Available instances: instance2Al iniciar ambos servicios se ejecutan en instance1. Si el nodo que aloja instance1 se reinicia o cae, ambos servicios se reubican en instance2. Cuando el nodo vuelve, solo el servicio con failback activado se relocaliza automáticamente de nuevo a instance1, mientras que el servicio sin failback permanece en instance2 hasta que se realice una relocación manual.
[oracle@node1 ~]$ srvctl start service -d db19c -s srv_nonfailback,srv_failback[oracle@node1 ~]$ srvctl status service -d db19c -s srv_nonfailback,srv_failbackService srv_nonfailback is running on instance(s) instance1Service srv_failback is running on instance(s) instance1[root@node1 ~]# reboot[oracle@node2 ~]$ srvctl status service -d db19cService srv_failback is running on instance(s) instance2Service srv_nonfailback is running on instance(s) instance2[oracle@node1 ~]$ srvctl status service -d db19cService srv_failback is running on instance(s) instance1Service srv_nonfailback is running on instance(s) instance2Resumen práctico: en Oracle RAC las instancias preferidas y disponibles determinan la colocación inicial y de emergencia de servicios. En versiones anteriores a 19c la recuperación al estado preferido es manual mediante srvctl relocate service. En Oracle 19c se puede configurar failback YES al crear el servicio para permitir la reubicación automática al volver la instancia preferida.
Acerca de Q2BSTUDIO: somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones empresariales modernas. Ofrecemos software a medida, aplicaciones a medida, integración de inteligencia artificial y agentes IA, servicios de ciberseguridad, servicios cloud aws y azure, y servicios de inteligencia de negocio incluyendo power bi y analítica avanzada. Ayudamos a las empresas a adoptar ia para empresas, automatizar procesos con agentes IA y mejorar la seguridad y disponibilidad de sus plataformas críticas como bases de datos Oracle RAC. Si necesita asesoramiento sobre alta disponibilidad, arquitectura cloud o implementar inteligencia artificial en sus procesos, Q2BSTUDIO combina experiencia técnica y enfoque a medida para entregar soluciones robustas y seguras.
Palabras clave para posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.