Manuelles Failover mit Sentinel durchführen und die Topologie bereinigen
RedisSentinelBefehl
# First check quorum and an eligible replica:
redis-cli -p 26379 SENTINEL CKQUORUM mymaster
redis-cli -p 26379 SENTINEL REPLICAS mymaster
# Manual failover without waiting for agreement from other sentinels:
redis-cli -p 26379 SENTINEL FAILOVER mymaster
# Verify the new master (must be the same on all sentinels):
redis-cli -p 26379 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster
# If old/removed replicas remain listed, reset sentinels one at a time, 30 s apart:
redis-cli -p 26379 SENTINEL RESET mymasterWas es tut
Übergibt die Master-Rolle auch bei gesundem Master an die am besten geeignete Replica; prüft anschließend den neuen Master und entfernt nicht mehr existierende Replicas aus dem Gedächtnis der Sentinels.
Wann einsetzen
Vor einer geplanten Wartung am Host des Masters, bei einer Failover-Übung oder beim Verlegen des Masters in ein anderes Rechenzentrum.
Vorsicht
Während des Failovers gibt es eine Schreibunterbrechung von einigen Sekunden, und auf den Master geschriebene, noch nicht replizierte Daten können verloren gehen. Replicas mit replica-priority 0 werden nie gewählt; gibt es keine geeignete Replica, liefert der Befehl einen Fehler. Läuft SENTINEL RESET auf allen Sentinels gleichzeitig, gehen Topologieinformationen vorübergehend verloren; auf jedem einzeln und zeitversetzt ausführen. Stelle sicher, dass Clients einen Treiber verwenden, der Sentinel nach der Master-Adresse fragt.