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 值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-11-27 提取一堆字符串中连在一起的数字,没有连在一起的则隔开