ES 一启动就报:all shards failed

出现这种问题,一般是索引文件损坏了,可能是内存不足,导致文件坏了,这个时候,按照以下步骤一步步排查可解决:

1、查看健康情况:

curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty=true'

  最后一栏:active_shards_percent_as_number 的值,健康状态的值没有达到 100,现在才 50 多。

2、查看损坏索引:

curl -XGET 'http://127.0.0.1:9200/_cat/indices?v&pretty'

  看最左边的 health 下面的状态颜色,应该都为  green 才对,现在有 yellow ,有些时候是 red 等

3、开始修复:

curl -H "Content-Type: application/json" -XPUT 'http://127.0.0.1:9200/_all/_settings' -d '
{
    "index" : {
       "number_of_replicas" : 0
    }
}'

 返回 {"acknowledged":true} 即修复好。

4、最后再查看健康状态:

 active_shards_percent_as_number 已恢复为 100 ,即可正常启动 es 了。

【最后:如果遇到还是不行,可以选择 delete 损坏的索引:】

curl -XDELETE  "http://127.0.0.1:9200/mongo*

mongo 这个索引值,看步骤二下的 index 值

posted @   雪化山河  阅读(2727)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-11-27 提取一堆字符串中连在一起的数字,没有连在一起的则隔开
点击右上角即可分享
微信分享提示