1.Sentinel 三大工作任务
1.1 监控
Sentinel会不断的检查你的主服务器和从服务器是否运作正常
1.2 提醒
当被监控的某个Redis服务器出现问题时,Sentinel可以通过API向管理员或者其他应用程序发送通知。
1.3 自动故障转移
当一个主服务器不能正常工作时,Sentinel会开始一次自动故障迁移工作,它会将失效的主服务器的其中一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器;当客户端试图尝试连接失效的主服务器时,集群也会向客户端返回新主服务器地址,使得集群可以使用新主服务器代替失效服务器。
2.冷备
2.1 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时,会提供给我们一个完整的数据库。
优点:
1)是非常快速的备份方法(只拷贝文件)
2)低度维护,高度安全。
缺点:
1)单独使用时,只能提供到“某一时间点数据”恢复
2)再实施备份的全过程中,数据库必须要做备份而不能做其他工作,也就是说在冷备份中,数据库必须是关闭状态。
3.热备
热备份是在数据库运行情况下,采用archivelog mode方式备份数据库的方法。
优点:
1)备份时间短
2)备份时数据库仍可使用
3)可达到秒级使用
缺点:
1)若热备份不成功,所得结果不可用于时间点的恢复。
2)因难于恢复,所以要非凡小心。
4.Sentinel故障转移原理
Sentinal是怎么工作的?
4.1 主观下线
概念主观下线:简称SDOWN,指的是单个Sentinal对服务器做出的下线判断。
主观下线特点:如果一个服务器没有在master-down-after-millisconds选项指定时间内,对向它发送PING命令的Sentinal返回一个有效回复,那么Sentinal就会将这个服务器标记为下线。
服务器对PING命令的有效回复可以是以下三种回复的其中一种:
返回+PONG
返回+LOADING错误。
返回-MASTERDOWN错误。
4.2 客观下线
客观下线概念:指的是多个Sentinel实例在对同一个服务器做出SDOWN判断,并且Sentinel is-master-down-by-addr命令互相交流之后,得出的服务器下线下线判断。(一个Sentine可以通过向另一个Sentinel发送SENTINELis-master-down-by-addr来询问对方是否认为给定的服务器已经下线)
客观下线特点:
从主观下线状态切换到客观下线状态并没有使用严格的的方订的人数算法,而是使用了留言协议:如果Sentinel在给定的时间范围内,从其他Sentinel那里接收到了足够的数量的主服务器下线报告,那么Sentinel将主服务器的状态的主观下线切换到客观下线,如果之后其他Sentinel不再报告主服务器已下线,那么客观下线状态就会被移除。
客观下线的注意点:
客观下线的条件只适用于主服务器,对于任何类型的其他Redis实例,Sentinel在将他们判断为下线前不需要进行协商,所以从服务器或者其他Sentinel永远不会达到客观下线状态
只要一个Sentinel发现某个主服务器进入到下线状态,这个Sentinel可能就会被其他Sentinel推选出,并对失效的主服务器执行自动故障迁移操作。
那么故障转移之后,那个废弃到的节点,重启或者恢复以后它将恢复什么身份呢,对了就变成了从节点了。