RAC-Service auf eine andere Instanz verlagern
OracleRAC & GridBefehl
# 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;Was es tut
Verschiebt einen laufenden Service von einer Instanz/einem Knoten auf eine(n) andere(n); neue Verbindungen gehen an die Zielinstanz, bestehende Sessions werden während drain_timeout sich selbst überlassen.
Wann einsetzen
Um einen Knoten vor der Wartung zu leeren, einen Service nach einem Failover auf seine Preferred-Instanz zurückzuholen oder die Last neu zu verteilen.
Vorsicht
Die Verlagerung ist temporär: Sie ändert die Service-Konfiguration (Preferred/Available) nicht; beim Neustart der Instanz kehrt der Service zu seiner Preferred-Instanz zurück. -force beendet bestehende Sessions; kann sich die Anwendung nicht neu verbinden, sehen die Benutzer einen Ausfall.
Verwandte Einträge
- Status von RAC-Datenbank, Instanzen und Services mit srvctl prüfen
- RAC-Datenbank oder einzelne Instanz mit srvctl stoppen/starten (rolling)
- RAC-Service mit Preferred-/Available-Instanzen hinzufügen (inkl. Application Continuity)
- Status der Cluster-Ressourcen prüfen (crsctl stat res -t)
- Zustand des Cluster-Stacks, Knotenliste und Clusterware-Version prüfen
- OCR-Integrität prüfen und OCR-Backup erstellen (ocrcheck / ocrconfig)