情况。
+sentinel
:一个监视给定主服务器的新 Sentinel 已经被识别并添加。
+sdown
:给定的实例现在处于主观下线状态。
-sdown
:给定的实例已经不再处于主观下线状态。
+odown
:给定的实例现在处于客观下线状态。
-odown
:给定的实例已经不再处于客观下线状态。
+new-epoch
:当前的纪元(epoch)已经被更新。
+try-failover
:一个新的故障迁移操作正在执行中,等待被大多数 Sentinel 选中(waiting to be elected by the majority)。
+elected-leader
:赢得指定纪元的选举,可以进行故障迁移操作了。
+failover-state-select-slave
:故障转移操作现在处于 select-slave 状态 —— Sentinel 正在寻找可以升级为主服务器的从服务器。
no-good-slave
:Sentinel 操作未能找到适合进行升级的从服务器。Sentinel 会在一段时间之后再次尝试寻找合适的从服务器来进行升级,又或者直接放弃执行故障转移操作。
selected-slave
:Sentinel 顺利找到适合进行升级的从服务器。
failover-state-send-slaveof-noone
:Sentinel 正在将指定的从服务器升级为主服务器,等待升级功能完成。
failover-end-for-timeout
:故障转移因为超时而中止,不过最终所有从服务器都会开始复制新的主服务器(slaves will eventually be configured to replicate with the new master anyway)。
failover-end
:故障转移操作顺利完成。所有从服务器都开始复制新的主服务器了。
+switch-master
:配置变更,主服务器的 IP 和地址已经改变。 这是绝大多数外部用户都关心的信息。
+tilt :进入 tilt 模式。
-tilt :退出 tilt 模式。
#故障转移
一次故障转移操作由以下步骤组成:
发现主服务器已经进入客观下线状态。
对我们的当前纪元进行自增, 并尝试在这个纪元中当选。
如果当选失败, 那么在设定的故障迁移超时时间的两倍之后, 重新尝试当选。 如果当选成功, 那么执行以下步骤。
选出一个从服务器,并将它升级为主服务器。
向被选中的从服务器发送 SLAVEOF NO ONE 命令,让它转变为主服务器。
通过发布与订阅功能, 将更新后的配置传播给所有其他 Sentinel , 其他 Sentinel 对它们自己的配置进行更新。
向已下线主服务器的从服务器发送 SLAVEOF 命令, 让它们去复制新的主服务器。
当所有从服务器都已经开始复制新的主服务器时, 领头 Sentinel 终止这次故障迁移操作。
|