elasticsearch Unassigned Shards 排查思路

curl -XPUT 'localhost:9200/<INDEX_NAME>/_settings' -d '{"number_of_replicas": 2}

 

curl -XPUT -H "Content-Type: application/json" 'localhost:9200/_all/_settings' -d '{"number_of_replicas": 0}'   //小心用 ,_all代表所有索引

 

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'  查看状态

curl -XDELETE 'localhost:9200/_all'  删除所有索引

 

 curl -XDELETE 'localhost:9200/<INDEX_NAME>'

 

curl -XGET http://localhost:9200/_cat/shards |grep UNASSIGNED   查看 Unassigned Shards

关闭unassigned_shards

关闭未分配的分片是Elasticsearch集群管理的一个常见操作,通常用于数据迁移或维护。在Elasticsearch中,未分配的分片是指那些因为某种原因(比如节点失效)从其原始分配位置移除的分片。

要关闭未分配的分片,可以使用以下Elasticsearch API命令:

 
 
POST /_cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}

这个命令会暂时关闭分片分配,使得集群不会自动分配那些未分配的分片。

如果你想要在以后重新启用分片分配,可以执行以下命令:

 
 
POST /_cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "all"
}
}

请注意,这些操作应该谨慎执行,并且通常只在维护期间需要,比如在数据迁移或者节点升级期间。

在某些情况下,你可能想要手动分配未分配的分片。可以使用以下命令手动分配分片:

 
 
POST /_cluster/reroute
{
"commands": [
{
"allocate": {
"index": "index_name",
"shard": 0,
"node": "node_name",
"allow_primary": true
}
}
// 可以添加更多的命令来手动分配更多的分片
]
}

在这个例子中,index_name 是问题分片所在的索引名称,shard 是分片的编号,node_name 是你想要分配分片的节点名称。allow_primary 是一个布尔值,表示是否允许将主分片分配到一个节点上

posted @   技术颜良  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-06-06 MySql导出存储过程、事件、触发器等
2023-06-06 Go协程Goroutines
2022-06-06 从Go log库到Zap,怎么打造出好用又实用的Logger
2018-06-06 Gogs安装配置(快速搭建版)转载
点击右上角即可分享
微信分享提示