运维工程师必备的认证【红帽liunx-RHCE 8】

1、什么是哨兵

哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:

  • 监控主数据库和从数据库是否运行正常;

  • 主数据出现故障后自动将从数据库转化为主数据库;

2、原理

单个哨兵的架构:

多个哨兵的架构:

多个哨兵,不仅同时监控主从数据库,而且哨兵之间互为监控。

多个哨兵,防止哨兵单点故障。

3、环境

当前处于一主多从的环境中:

4、设置哨兵

启动哨兵进程首先需要创建哨兵配置文件:

vim sentinel.conf

输入内容:

sentinel monitor taotaoMaster 127.0.0.1 6379 1

​​​​

说明:

  • taotaoMaster:监控主数据的名称,自定义即可,可以使用大小写字母和“.-_”符号

  • 127.0.0.1:监控的主数据库的IP

  • 6379:监控的主数据库的端口

  • 1:最低通过票数

启动哨兵进程:

redis-sentinel ./sentinel.conf

​​​​​

由上图可以看到:

  • 哨兵已经启动,它的id为9059917216012421e8e89a4aa02f15b75346d2b7

  • 为master数据库添加了一个监控

  • 发现了2个slave(由此可以看出,哨兵无需配置slave,只需要指定master,哨兵会自动发现slave)

5、从宕机及恢复

kill掉2826进程后,30秒后哨兵的控制台输出:

  • 2989:X 05 Jun 20:09:33.509 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379

说明已经监控到slave宕机了,那么,如果我们将3380端口的redis实例启动后,会自动加入到主从复制吗?

2989:X 05 Jun 20:13:22.716 * +reboot slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
2989:X 05 Jun 20:13:22.788 # -sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379

可以看出,slave从新加入到了主从复制中。-sdown:说明是恢复服务。

6、主宕机及恢复

哨兵控制台打印出如下信息:

2989:X 05 Jun 20:16:50.300 # +sdown master taotaoMaster 127.0.0.1 6379 说明master服务已经宕机
2989:X 05 Jun 20:16:50.300 # +odown master taotaoMaster 127.0.0.1 6379 #quorum 1/1
2989:X 05 Jun 20:16:50.300 # +new-epoch 1
2989:X 05 Jun 20:16:50.300 # +try-failover master taotaoMaster 127.0.0.1 6379 开始恢复故障
2989:X 05 Jun 20:16:50.304 # +vote-for-leader 9059917216012421e8e89a4aa02f15b75346d2b7 1 投票选举哨兵leader,现在就一个哨兵所以leader就自己
2989:X 05 Jun 20:16:50.304 # +elected-leader master taotaoMaster 127.0.0.1 6379 选中leader
2989:X 05 Jun 20:16:50.304 # +failover-state-select-slave master taotaoMaster 127.0.0.1 6379 选中其中的一个slave当做master
2989:X 05 Jun 20:16:50.357 # +selected-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 选中6381
2989:X 05 Jun 20:16:50.357 * +failover-state-send-slaveof-noone slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 发送slaveof no one命令
2989:X 05 Jun 20:16:50.420 * +failover-state-wait-promotion slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 等待升级master
2989:X 05 Jun 20:16:50.515 # +promoted-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 升级6381为master
2989:X 05 Jun 20:16:50.515 # +failover-state-reconf-slaves master taotaoMaster 127.0.0.1 6379
2989:X 05 Jun 20:16:50.566 * +slave-reconf-sent slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
2989:X 05 Jun 20:16:51.333 * +slave-reconf-inprog slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
2989:X 05 Jun 20:16:52.382 * +slave-reconf-done slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
2989:X 05 Jun 20:16:52.438 # +failover-end master taotaoMaster 127.0.0.1 6379 故障恢复完成
2989:X 05 Jun 20:16:52.438 # +switch-master taotaoMaster 127.0.0.1 6379 127.0.0.1 6381 主数据库从6379转变为6381
2989:X 05 Jun 20:16:52.438 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6381 添加6380为6381的从库
2989:X 05 Jun 20:16:52.438 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381 添加6379为6381的从库
2989:X 05 Jun 20:17:22.463 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381 发现6379已经宕机,等待6379的恢复

可以看出,目前,6381位master,拥有一个slave为6380.

接下来,我们恢复6379查看状态:

2989:X 05 Jun 20:35:32.172 # -sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381  6379已经恢复服务2989:X 05 Jun 20:35:42.137 * +convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381  将6379设置为6381的slave

7、配置多个哨兵

  • vim sentinel.conf

输入内容:

  • sentinel monitor taotaoMaster1 127.0.0.1 6381 1
    sentinel monitor taotaoMaster2 127.0.0.1 6381 2

end

欢迎关注微信公众号【厦门微思网络】。www.xmws.cn专业IT认证培训19周年
主要课程:思科、华为、红帽、ORACLE、VMware、CISP、PMP等认证培训及考证

Redis宕机了怎么办?相关推荐

  1. 读者诉苦:Redis 宕机,数据丢了,老板要辞退我

    最近跟一位读者聊天,小哥非常郁闷,公司的Redis宕机了,线上业务受到了影响,老板非常愤怒,小哥担心会不会被辞退! 我也很好奇,问小哥Redis主节点挂了,还有备机啊.怎么会影响到业务呢? 小哥说,他 ...

  2. Redis宕机的解决方案

    宕机: 服务器停止服务 如果只有一台redis, 肯定会造成数据丢失. 多台reids或者是Redis集群,服务器宕机还有办法. 从的redis宕机怎么解决 配置主从复制的时候才配置从的redis, ...

  3. redis数据丢失_Redis持久化Redis宕机或者出现意外删库导致数据丢失解决方案

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:xlecho 转载自: https://www.cnb ...

  4. Redis宕机数据丢失解决方案,不吃透都对不起自己

    前言 昨天,有个女孩子问我提高数据库查询性能有什么立竿见影的好方法? 这简直是一道送分题,我自豪且略带鄙夷的说,当然是加「索引」了. 她又不紧不慢的问,索引为什么就能提高查询性能. 这还用问,索引就像 ...

  5. Redis 日志篇:无畏宕机实现高可用的杀手锏

    " 特立独行是对的,融入圈子也是对的,重点是要想清楚自己向往怎样的生活,为此愿意付出怎样的代价. " 我们通常将 Redis 作为缓存使用,提高读取响应性能,一旦 Redis 宕机 ...

  6. Redis 日志篇:无畏宕机快速恢复的杀手锏

    " 特立独行是对的,融入圈子也是对的,重点是要想清楚自己向往怎样的生活,为此愿意付出怎样的代价. " 我们通常将 Redis 作为缓存使用,提高读取响应性能,一旦 Redis 宕机 ...

  7. 如果redis哨兵宕机了怎么办_Redis 主从复制架构中出现宕机怎么办?以及哨兵功能...

    如果主从复制架构中出现宕机的情况,需要分情况看: 1. 从Redis宕机 相对而言比较简单,Redis从库重新启动后会自动加入到主从架构中,自动完成同步数据: 存在的问题是,如果从库在断开期间,主库变 ...

  8. php redis 挂掉,redis中的宕机什么意思

    宕机是计算机术语,口语里面我们简单的把停掉机器叫做down机,转换为汉字是"宕机",但很多人都叫做"当机"/"死机",虽然不规范但却流行. ...

  9. Redis 无畏宕机快速恢复的杀手锏

    " 特立独行是对的,融入圈子也是对的,重点是要想清楚自己向往怎样的生活,为此愿意付出怎样的代价. " 我们通常将 Redis 作为缓存使用,提高读取响应性能,一旦 Redis 宕机 ...

最新文章

  1. C++简介源码讲解精辟版,C++入门级C++学习,C++与C的区别值得知晓
  2. 网站程序数据库怎么上传到服务器上,网站的数据库怎么上传到服务器
  3. 掌握JS压缩图片,这一篇就够了
  4. html一个页面多个动画,如何在单个html页面中添加两个相同的adobe边缘动画?
  5. 为什么用自己的电脑部署服务器之后外网访问不到呢?并且该如何解决这个问题呢?...
  6. SNMP实现交换机的信息采集——MIB
  7. windows10怎么锁定计算机,别让Windows 10锁住亲友
  8. tomcat本地服务器配置好了考到别的机器上项目都错了e,【Tomcat】项目部署和运行时遇到的坑(玄学?)...
  9. 马尔科夫决策过程(MDP):汽车租赁问题
  10. 凸优化第四章凸优化问题 4.7向量优化
  11. 学习日记——FPGA入门基础
  12. llinux默认ip修改方法
  13. 科学计算机壁纸,Nature大盘点:2020年最佳科学影像,每一张都是壁纸,每一张都是历史...
  14. 如何将mp3转换flac音频文件格式
  15. 这里excel将文本转换为数字
  16. 减法器运算电路公式推导
  17. Weblogic常见报错以及解决方法[转载]
  18. java 计算有效时长,有一时间段不计算时长
  19. SHOUTcast使用指南(1)
  20. 仿炫酷头条小视频拖拽动画

热门文章

  1. VS2017 快捷键
  2. 解决System.Web.Script.Serialization导入失败
  3. HttpClient发送Get请求(java)【从新浪云搬运】
  4. ACM入门之【树状数组习题】
  5. C语言指针和二维数组
  6. MySQL中的外连接
  7. Bootstrap的引用文件
  8. 推荐一波腾讯专家的技术书单,请收下!
  9. Java8之Consumer、Supplier、Predicate和Function攻略
  10. 蓝桥杯第五届决赛真题大全解(java版本)