RedisCluster 集群配置文件损坏修复
RedisCluster 集群配置文件损坏修复
问题现象
启动集群后,log文件显示如下信息:
1 | Unrecoverable error: corrupted cluster config file. |
这种情况,因为集群cluster-config-file文件损坏引起,导致该节点无法启动
修复方案
- 首先在各个node上移除该出错节点
- 删除该cluster-config-file文件
- 重新启动该节点
- 将该节点加入集群
- 指定该节点的master,将该节点以slave加入集群(本次修复未执行,集群自动恢复正常)
实施步骤
一、首先在各个node上移除该出错节点
执行以下脚本,将fail节点移除出集群,该操作仅移除一个机器中的无用节点信息,如果是多个机器,请在host_array中添加多个机器IP
1 | #!/bin/bash |
二、删除该cluster-config-file文件
1 | mv nodes-7004.conf nodes-7004.conf.bak |
三、重新启动该节点
1 | redis-server redis.conf |
四、将该节点加入集群
在集群任意instance 执行以下命令
1 | CLUSTER MEET <ip> <port> //将ip和port所指定的节点添加到集群当中,让它成为集群的一份子 |
五、指定该节点的master,将该节点以slave加入集群
在此次修复场景中未进行第五步,集群自动分配成为不均衡节点的slave
如果集群未自动分配,在需要加入集群的实例上执行,指定为某一个master的slave
1 | CLUSTER REPLICATE <node_id> //将当前节点设置为 node_id 指定的节点的从节点。 |