文章目录

  • Pre
  • 现象
  • 查找未指派的slots
    • 方式一 cluster slots
    • 方式二 cluster nodes
    • 计算未指派的slots ,重新添加
  • Redisson 初始化失败 (Not all slots are covered! Only 10923 slots are avaliable + Failed to add master: redis://172.168.15.101:7002 for slot ranges: [[10923-16383]]. Reason - cluster_state:fail)

Pre

测试环境,搭建的伪集群

101 : 7001 7002 7003 三个节点
102 : 7004 7005 7006 三个节点

机房异常断电,主机宕机~


现象

Redis Cluster 不可用 ,应用无法正常启动

查看集群信息 ,如下

172.168.15.101:7001> CLUSTER INFO
cluster_state:fail
cluster_slots_assigned:16354
cluster_slots_ok:16354
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:7
cluster_my_epoch:1
cluster_stats_messages_ping_sent:1666
cluster_stats_messages_pong_sent:1063
cluster_stats_messages_sent:2729
cluster_stats_messages_ping_received:1063
cluster_stats_messages_pong_received:1026
cluster_stats_messages_received:2089

划重点 cluster_state:fail cluster_slots_assigned:16354 , 集群状态 fail , 分配的slots 16354 < 16384 , 少了30个slots ,集群不可用。

为了保证集群完整性, 默认情况下当集群16384个槽任何一个没有指派到节点时整个集群不可用。这是对集群完整性的一种保护措施, 保证所有的槽都指派给在线的节点。

可以看到 slot 有未分配的情况, 那如何重新分配这些slots 便是解决问题的关键。


查找未指派的slots

方式一 cluster slots

172.168.15.101:7001> CLUSTER SLOTS1) 1) (integer) 54612) (integer) 55913) 1) "172.168.15.101"...........33) 1) (integer) 02) (integer) 54603) 1) "172.168.15.101"2) (integer) 70013) "40b3ab3eb00e0107ea702e96231694016fb5c25f"4) 1) "172.168.15.102"2) (integer) 70063) "b2392a54bc1ed255d9f86ce5315b3c66177bc54c"
172.168.15.101:7001>

太多了,并且这么看也不方便统计,推荐第二种方式


方式二 cluster nodes

172.168.15.101:7001> cluster nodes
f434df4b2a8e8262e91b192fdd4329ac7eaba257 172.168.15.101:7003@17003 master - 0 1589854185127 7 connected 5461-5591 5593-5783 5785-5913 5915-6157 6159-6264 6266-6290 6292-6311 6313-6401 6403-6963 6965-7228 7230-7566 7568-7647 7649-7862 7864-8199 8201-8693 8695-8805 8807-8832 8834-9229 9231-9305 9307-9353 9355-9477 9479-9696 9698-9761 9763-9855 9857-10241 10243-10265 10267-10310 10312-10348 10350-10529 10531-10669 10671-10922
8c27d256907bd17ceed4b0bfc8474eb90e7cf71e 172.168.15.102:7004@17004 slave f434df4b2a8e8262e91b192fdd4329ac7eaba257 0 1589854187127 7 connected
8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d 172.168.15.101:7002@17002 master - 0 1589854186127 2 connected 10923-16383
b2392a54bc1ed255d9f86ce5315b3c66177bc54c 172.168.15.102:7006@17006 slave 40b3ab3eb00e0107ea702e96231694016fb5c25f 0 1589854185000 6 connected
40b3ab3eb00e0107ea702e96231694016fb5c25f 172.168.15.101:7001@17001 myself,master - 0 1589854184000 1 connected 0-5460 [5592-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [5784-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [5914-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [6158-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [6265-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [6291-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [6312-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [6402-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [6964-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [7229-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [7567-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [7648-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [7863-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [8200-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [8694-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [8806-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [8833-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9230-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9306-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9354-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9478-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9697-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9762-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [9856-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10242-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10266-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10311-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10349-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10530-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10670-<-8c27d256907bd17ceed4b0bfc8474eb90e7cf71e] [10973-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [11020-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [11140-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [11144-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [11200-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [11624-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [11802-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [12201-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [12301-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [12681-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [12685-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [13365-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [13676-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [13969-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [13989-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [14395-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [14412-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [15149-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [15611-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [15654-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [15758-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [15778-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [15899-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [16100-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [16105-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d] [16147-<-8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d]
6d8f2f251fa2d881cae91012088e1d5eb653ebb4 172.168.15.102:7005@17005 slave 8dff9fa8b74dd6cdf90a706c3945fbe2025cb57d 0 1589854186000 5 connected

7002 : 10923-16383

7001: 0-5460

7003 : 5461-5591 5593-5783 5785-5913 5915-6157 6159-6264 6266-6290 6292-6311 6313-6401 6403-6963 6965-7228 7230-7566 7568-7647 7649-7862 7864-8199 8201-8693 8695-8805 8807-8832 8834-9229 9231-9305 9307-9353 9355-9477 9479-9696 9698-9761 9763-9855 9857-10241 10243-10265 10267-10310 10312-10348 10350-10529 10531-10669 10671-10922

缺哪些slot ,可以知道了吧

cluster nodes的格式 随后分析一下 ~~~


计算未指派的slots ,重新添加

看7003 这个master 后面的slot分布情况

5461-5591 5593-5783 5785-5913 5915-6157 6159-6264 6266-6290 6292-6311 6313-6401 6403-6963 6965-7228 7230-7566 7568-7647 7649-7862 7864-8199 8201-8693 8695-8805 8807-8832 8834-9229 9231-9305 9307-9353 9355-9477 9479-9696 9698-9761 9763-9855 9857-10241 10243-10265 10267-10310 10312-10348 10350-10529 10531-10669 10671-10922

缺少 5592 5784 5914 6158 6265 6291 6312 6402 6964 7229 7567 7648 7863 8200 8694 8806 8833 9230 9306 9354 9478 9697 9762 9856 10242 10266 10311 10349 10530 10670

重新分配下


172.168.15.101:7001> CLUSTER ADDSLOTS 5592 5784 5914 6158 6265  6291 6312 6402 6964 7229 7567 7648 7863 8200 8694 8806 8833 9230 9306 9354 9478 9697 9762 9856 10242 10266 10311 10349 10530 10670
OK
172.168.15.101:7001>

过一会儿,重新查看下

172.168.15.101:7001> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:7
cluster_my_epoch:1
cluster_stats_messages_ping_sent:2108
cluster_stats_messages_pong_sent:1508
cluster_stats_messages_sent:3616
cluster_stats_messages_ping_received:1508
cluster_stats_messages_pong_received:1468
cluster_stats_messages_update_received:19
cluster_stats_messages_received:2995
172.168.15.101:7001>

OK了


Redisson 初始化失败 (Not all slots are covered! Only 10923 slots are avaliable + Failed to add master: redis://172.168.15.101:7002 for slot ranges: [[10923-16383]]. Reason - cluster_state:fail)

Redisson配置了集群地址

[2020-05-19 10:44:33,539] INFO [localhost-startStop-1] RedissonManager.<clinit>(27) | redisson client begin to init....
[2020-05-19 10:44:36,365] ERROR [localhost-startStop-1] RedissonManager.<clinit>(52) | org.redisson.client.RedisConnectionException: Not all slots are covered! Only 10923 slots are avaliableat org.redisson.cluster.ClusterConnectionManager.<init>(ClusterConnectionManager.java:167)at org.redisson.config.ConfigSupport.createConnectionManager(ConfigSupport.java:198)at org.redisson.Redisson.<init>(Redisson.java:122)at org.redisson.Redisson.create(Redisson.java:159).....................
Caused by: org.redisson.client.RedisException: Failed to add master: redis://172.168.15.101:7002 for slot ranges: [[10923-16383]]. Reason - cluster_state:failat org.redisson.cluster.ClusterConnectionManager$1$1.operationComplete(ClusterConnectionManager.java:223)at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504)

原因很明确了 redis://172.168.15.101:7002 for slot ranges: [[10923-16383]]. Reason - cluster_state:fail

连上7002端口 (一定要上7002上看,不要再其他端口查看节点信息),重复刚才的操作 。

期间重启了几次节点 ,故障恢复 。

Redis进阶 - 因异常断电导致的Redis Cluster Fail故障处理相关推荐

  1. Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster

    文章目录 Pre Jedis操作Redis Cluster 添加依赖 Code Spring Boot 操作Redis Cluster 引入 依赖 application.yml Code Pre R ...

  2. Postgres 异常断电导致启动失败的解决方法

    问题起因: 前段时间客户生产服务器,突然不小心弄断电了,虽然运维人员重启服务后,看似能正常访问,但是出现主从无法正常同步数据问题,而重新启动服务后,报could not connet to serve ...

  3. Linux设备异常断电导致的SD卡损坏的解决方案

    Linux设备异常断电导致的SD卡损坏的解决方案 需求|背景 如果一台linux设备的系统镜像是保存在SD卡中,启动方式是通过SD卡启动,频繁异常断电容易对SD卡和其中的文件造成损坏,这种情况下想要恢 ...

  4. Redis进阶-5.x 单节点 及Redis Cluster 3主3从集群部署

    文章目录 Redis 下载地址 Redis 5.x 单节点 编译安装 Redis 启停 Redis Cluster 4.x VS Redis Cluster 5.x 演进之路 ( Master/Sla ...

  5. [vSphere]ESXi异常断电导致虚拟机无法打开

    环境说明 单ESXi 6.7主机,其上安装VCSA 6.7 实现管理. 故障现象 由于电力故障,导致ESXi异常断电,断电前处于关机状态的虚拟机不受影响,断电前处于开机状态下的虚拟机全部无法启动,且除 ...

  6. 【北亚数据恢复】异常断电导致linux服务器无法启动,数据库损坏的数据恢复

    服务器数据恢复故障描述: 客户服务器系统出现故障,导致启动信息丢失 ,数据库无法访问,管理员联系北亚数据恢复中心进行数据恢复.服务器曾经遭遇过异常断电,北亚数据恢复工程师推测可能与异常断电有关. 服务 ...

  7. 导致oracle 控制文件坏,异常断电导致ORACLE控制文件等受到破坏的处理

    故障现象:客户某台WINDOWS服务器掉电,ORACLE数据库STARTUP提示控制文件CONTROL01.CTL.CONTROL02.CTL被破坏.一.处理控制文件异常故障方法:直接拷贝CONTRO ...

  8. Redis进阶 -CLUSTER NODES 信息结合实际输出信息解读

    文章目录 Pre cluster nodes 作用 输出格式 flags 含义 slot 第一种 单哈希槽 第二种 Range 第三种特殊状态 导入和迁移 Pre Redis进阶 - 因异常断电导致的 ...

  9. 异常断电后,桌面软件打不开,一直转圈,com.intellij.ide.plugins.StartupAbortedException: Cannot start app

    文章目录 问题: 处理方式: 1.重启大法,发现重启之后不管用 2.点击所有桌面软件都是鼠标一直在转圈,无法打开程序. 3.点击我的电脑 解决分析: 4.GoLAND.DataGrip无法正常打开软件 ...

最新文章

  1. 3D原子映射有助于研究生命的起源
  2. 大数据产业正处在蓬勃发展的孕育期与机遇期
  3. nyoj3533D dungeon
  4. 问答机器人2.0!文档问答产品科普
  5. 这9个人气超高的公众号,你还没关注吗?
  6. sql连接远程服务器索引超出了_手机怎么连接服务器远程桌面?RD client远程桌面使用教程...
  7. 如何用计算机管理员权限,教你电脑使用代码添加管理员权限的详细教程
  8. 腾讯云linux配置服务器配置,centos7+腾讯云服务器搭建wordpress
  9. Effective C# 学习笔记(五) 最好重载你所创建类的ToString()方法
  10. 你看,那个人好像一条狗哎
  11. c语言实现 网络嗅探程序代码,C语言实现网络嗅探器
  12. 股票历史数据下载-A股所有股票的历史数据下载
  13. python怎么根据度分布生成网络_python度分布图
  14. win10家庭版升级到专业版
  15. Mac OS清除图标缓存
  16. quartz mysql 表 集群配置_Quartz集群配置
  17. Ubuntu 20.04安装字体
  18. Pyhton抓取BOSS直聘职位描述和数据清洗,很简单没有那么难
  19. phython学习资料
  20. 苹果待处理订单要多久_苹果官网准备发货到发货要多久呀?

热门文章

  1. Linux下CMake简明教程(五)正规一点的组织结构
  2. yolo 识别 狗狗自行车
  3. keras 时间序列分析
  4. linux 编程博客,Linux系统编程博客参考
  5. java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换
  6. java字符串转化为数组_Go 语言字符串和数组转化 | 臭大佬
  7. 123. Leetcode 72. 编辑距离 (动态规划- 字符串系列)
  8. 53. Leetcode 112. 路径总和 (二叉树-二叉树路径和)
  9. Leetcode 63. 不同路径 II (每日一题 20210903)
  10. 重温强化学习之无模型学习方法:蒙特卡洛方法