Realocar um serviço RAC para outra instância
OracleRAC & 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;O que faz
Move um serviço em execução de uma instância/nó para outro; novas conexões vão para a instância de destino e as sessões existentes são deixadas para encerrar sozinhas durante o drain_timeout.
Quando usar
Para esvaziar um nó antes de manutenção, devolver um serviço à sua instância preferred após um failover ou rebalancear a carga.
Atenção
A realocação é temporária: não altera a configuração do serviço (preferred/available); quando a instância reinicia, o serviço volta para sua instância preferred. -force encerra as sessões existentes; se a aplicação não conseguir reconectar, os usuários percebem uma indisponibilidade.
Relacionados
- Verificar o status do banco de dados, das instâncias e dos serviços RAC com srvctl
- Parar / iniciar um banco de dados RAC ou uma única instância com srvctl (rolling)
- Adicionar um serviço RAC com instâncias preferred/available (incluindo Application Continuity)
- Verificar o status dos recursos do cluster (crsctl stat res -t)
- Verificar a saúde da pilha do cluster, a lista de nós e a versão do Clusterware
- Verificar a integridade do OCR e fazer um backup do OCR (ocrcheck / ocrconfig)