僵尸索引 Dangling indices

现象

僵尸索引 Dangling indices_第1张图片
集群有3个索引分片无法分配,查看原因:
僵尸索引 Dangling indices_第2张图片

{
  "index": "brock**********************000_7",
  "shard": 0,
  "primary": true,
  "current_state": "unassigned",
  "unassigned_info": {
    "reason": "DANGLING_INDEX_IMPORTED",
    "at": "2020-05-05T22:32:38.904Z",
    "last_allocation_status": "no_valid_shard_copy"
  },
  "can_allocate": "no_valid_shard_copy",
  "allocate_explanation": "cannot allocate because a previous copy of the primary shard existed but can no longer be found on the nodes in the cluster",
  "node_allocation_decisions": [ ... ]

分析

DANGLING_INDEX_IMPORTED:僵尸索引/悬空索引:磁盘中存在,而集群状态中不存在的索引;

github上关于悬空索引的文章,https://github.com/elastic/ela … 18250

可能产生原因:

  • 直接在物理机上删除了某个索引的UUID数据目录;
  • 有节点长时间离线,索引已经删除了,但节点重新加入集群后,还保存有这个索引的信息;
  • 从别的集群拷贝了一个索引的数据目录到当前集群;

解决方案

1、在集群中删除僵尸索引;

2、如果步骤1执行后,僵尸索引又重新出现,则只能从物理机上硬删了

参考文章

  • 悬空索引(Dangling indices)无法删除
  • 大数据的搜索引擎——Elasticsearch

你可能感兴趣的:(ElasticSearch)