使用的ES
版本为 6.x 一共有 9 个节点,从 5.x 升级到 6.x,重启后所有 index 都显示unassigned
,可用数据 replicas 为 70%, 已经恢复数据 40.5%,通过诊断 API,ES 提示如下错误:
cannot allocate because a previous copy of the primary shard existed but can no longer be found on the nodes in the cluster
1
wangking 2019-07-26 01:37:45 +08:00
数据不重要就把 index 清除重建把
|
2
SlipStupig OP @wangking 数据非常重要啊
|
3
brust 2019-07-26 09:00:12 +08:00
知识盲区,es 不是自动恢复吗?
等大佬回答 |
4
horx 2019-07-26 09:26:19 +08:00
5.x x 是几? 5.5 以下要先升级到 5.6,再升级到 6.x
|
5
linxiaojialin 2019-07-26 09:37:29 +08:00
是不是有些片挂掉了
|
6
alfer 2019-07-26 09:55:42 +08:00
其实你没有把问题描述清楚。
集群重启前,有没有把副本分片的分配置为失效,只对主分片进行分配,可以避免分片之间的竞争。 "cluster.routing.allocation.enable": "primaries"。并关闭集群 rebanlce。 对于重要数据又没有备份,但是分片没有被分配,处理方式如下: 通过 /_cat/shard/{index}定位到具体是哪些分片处理失败。 再用 /_cluster/allocation/expalin 定位具体分片分配失败的原因。 然后根据失败的原因,做具体处理,一般操作: 1、优先恢复主分片 1.1 选择路由主分片到其他节点(可能会造成分片数据丢失) 1.2 删除重复的已分片主分片 2、主分片恢复后,分配副本分片 |