分类什么是Sentinel原理环境设置SentinelSlave宕机和恢复Master宕机和恢复配置多个Sentinel1.什么是Sentinel?Sentinel是一个独立的进程,负责监控Redis系统的运行。二:监控主库和从库是否正常运行;主数据失效后自动将从库转换为主库;2、单sentinel架构原理:多sentinel架构:多个sentinel,不仅同时监控master和slave的数据库,而且各个sentinel之间相互监控。多个Sentinel以防止Sentinel出现单点故障。三、环境目前是一主多从的环境:4、设置哨兵要启动哨兵进程,首先需要创建一个哨兵配置文件:vimsentinel.conf输入内容:sentinelmonitortaotaoMaster127.0.0.163791说明:taotaoMaster:监控主数据名称,可以自定义,可以使用大小写字母和“.-_”符号127.0.0.1:被监控主库IP6379:被监控主库1号端口:the最低票数启动sentinel进程:redis-sentinel./sentinel.conf从上图可以看出:Sentinel已经启动,其id为9059917216012421e8e89a4aa02f15b75346d2b7添加了master数据库的monitor,发现了2个slaves(可以从这里可以看出sentinel不需要配置slave,只需要指定master,sentinel会自动发现slave)5.从shutdown和recoverykill掉2826进程后,sentinel的控制台输出30后seconds:2989:X05Jun20:09:33.509#+sdownslave127.0.0.1:6380127.0.0.16380@taotaoMaster127.0.0.16379表示已经监测到slave宕机了,那么如果我们启动redis实例3380端口,会不会自动加入主从复制?2989:X05Jun20:13:22.716*+rebootslave127.0.0.1:6380127.0.0.16380@taotaoMaster127.0.0.163792989:X05Jun20:13:22.788#-sdownslave127.0.0.0.1:6380taotaoMaster127.0.0.16379可以看出slave重新加入了主从复制。-sdown:说明是恢复服务。6、master宕机恢复哨兵控制台打印如下信息:2989:X05Jun20:16:50.300#+sdownmastertaotaoMaster127.0.0.16379表示master服务已经宕机2989:X05Jun20:16:50.300#+odownmastertaotaoMaster127.0.0.16379#quorum1/12989:X05Jun20:16:50.300#+new-epoch12989:X05Jun20:16:50.300#+try-failovermastertaotaoMaster127.0.0.16379开始恢复故障2989:X05Jun20:16:50.304#+vote-for-leader9059917216012421e8e89a4aa02f15b75346d2b71票给sentinelleader,现在只有一个sentinel所以leader是他自己2989:X05Jun20:16:50.3ed04#+leadermastertaotaoMaster127.0.0.16379Selectleader2989:X05Jun20:16:50.304#+failover-state-select-slavemastertaotaoMaster127.0.0.16379选择其中一个slave作为master2989:X05Jun20:16:50.357#+failover-state-select-slavemastertaotaoMaster127.0.0.16379selected-slaveslave127.0.0.1:6381127.0.0.16381@taotaoMaster127.0.0.16379Selected63812989:X05Jun0.357:5+failover-state-send-slaveof-nooneslave127.0.0.1.2736381@taotaoMaster127.0.0.16379发送slaveofnoone命令2989:X05Jun20:16:50.420*+failover-state-wait-promotionslave127.0.0.1:6381127.0.0.16381@taotaoMaster127.0.0.16379等待升级master2989:X05Jun20:16:50.515#+promoted-slaveslave127.0.0.1:6381127.0.0.16381@taotaoMaster127.0.0.16379将6381升级到master2989:X05Jun20:16:50.515#+failover-state-reconf-slavesmastertaotaoMaster127.0.0.163792989:X05Jun20:16:50.566*+slave-reconf-sentslave127.0.0.1:6380127.0.0.16380@taotaoMaster127.0.0.163792989:X05Jun20:16:51.333*+slave-reconf-inprogslave127.0.0.1:6380127.0.0.16380@taotaoMaster127.0.0.29un:8:20356slave-reconf-doneslave127.0.0.1:6380127.0.0.16380@taotaoMaster127.0.0.163792989:X05Jun20:16:52.438#+failover-endmastertaotaoMaster127.0.0.9故障恢复完成:63705Jun20:16:52.438#+switch-mastertaotaoMaster127.0.0.16379127.0.0.16381master数据库从6379改为63812989:X05Jun20:16:52.438*+slaveslave127.0.0.1:6380127.6@taotaoMaster127.638.0Addas6.638.06381从库2989:X05Jun20:16:52.438*+slaveslave127.0.0.1:6379127.0.0.16379@taotaoMaster127.0.0.16381添加6379作为6381的从库2989:X05Jun20:17:22.463#+sdownslave127:0.0.6379127.0.0.16379@taotaoMaster127.0.0.16381发现6379已经宕机,等待6379恢复,可以看出目前6381是master,有6380的slave,接下来我们恢复6379查看状态:2989:X05Jun20:35:32.172#-sdownslave127.0.0.1:6379127.0.0.16379@taotaoMaster127.0.0.163816379已经恢复服务2989:X05Jun20:35:42.137*+convert-to-slaveslave127.0.:6379127.0.0.16379@taotaoMaster127.0.0.16381设置6379为6381的slave7,配置多个sentinelvimsentinel.conf输入内容:sentinelmonitortaotaoMaster1127.0.0.163811sentinelmonitortaotaoMaster21.6127.
