Reubicar un servicio RAC en otra instancia
OracleRAC y GridComando
# First check the current placement:
srvctl status service -db <db_unique_name> -service <service>
# Relocate by instance (sessions are drained):
srvctl relocate service -db <db_unique_name> -service <service> \
-oldinst <inst1> -newinst <inst3> -drain_timeout 120 -wait YES
# By node (policy-managed / singleton service):
srvctl relocate service -db <db_unique_name> -service <service> \
-currentnode <node1> -targetnode <node2>
# Session distribution per instance (SQL):
SELECT inst_id, service_name, COUNT(*) AS sessions
FROM gv$session
WHERE type = 'USER'
GROUP BY inst_id, service_name
ORDER BY service_name, inst_id;Qué hace
Mueve un servicio en ejecución de una instancia/nodo a otro; las conexiones nuevas van a la instancia de destino y las sesiones existentes se dejan cerrar por sí solas durante drain_timeout.
Cuándo usarlo
Para vaciar un nodo antes del mantenimiento, devolver un servicio a su instancia preferred tras un failover o reequilibrar la carga.
Precaución
La reubicación es temporal: no cambia la configuración del servicio (preferred/available); cuando la instancia se reinicia, el servicio vuelve a su instancia preferred. -force mata las sesiones existentes; si la aplicación no puede reconectarse, los usuarios ven una caída.
Relacionado
- Comprobar el estado de la base de datos, instancias y servicios RAC con srvctl
- Detener / iniciar una base de datos RAC o una sola instancia con srvctl (rolling)
- Añadir un servicio RAC con instancias preferred/available (incluido Application Continuity)
- Comprobar el estado de los recursos del clúster (crsctl stat res -t)
- Comprobar la salud de la pila del clúster, la lista de nodos y la versión de Clusterware
- Comprobar la integridad del OCR y tomar un backup del OCR (ocrcheck / ocrconfig)