Sentinel で手動フェイルオーバーを実行し、トポロジーを整理する
RedisSentinelコマンド
# 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 mymaster概要
マスターが正常であっても、マスターロールを最適なレプリカに引き渡す。その後、新しいマスターを検証し、もう存在しないレプリカを Sentinel のメモリからクリアする。
使用する場面
マスターのホストで計画メンテナンスを行う前、フェイルオーバー訓練中、またはマスターを別のデータセンターに移す場合。
注意
フェイルオーバー中に数秒間の書き込み中断があり、マスターに書き込まれたがまだレプリケートされていないデータは失われる可能性がある。replica-priority 0 のレプリカは選ばれない。適格なレプリカが存在しない場合、コマンドはエラーを返す。すべての Sentinel で同時に SENTINEL RESET を実行すると、トポロジー情報が一時的に失われるため、各 Sentinel で間隔を空けて個別に実行する。クライアントが Sentinel にマスターアドレスを照会するドライバーを使用していることを確認する。