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
关闭未分配的分片是Elasticsearch集群管理的一个常见操作,通常用于数据迁移或维护。在Elasticsearch中,未分配的分片是指那些因为某种原因(比如节点失效)从其原始分配位置移除的分片。
要关闭未分配的分片,可以使用以下Elasticsearch API命令:
这个命令会暂时关闭分片分配,使得集群不会自动分配那些未分配的分片。
如果你想要在以后重新启用分片分配,可以执行以下命令:
请注意,这些操作应该谨慎执行,并且通常只在维护期间需要,比如在数据迁移或者节点升级期间。
在某些情况下,你可能想要手动分配未分配的分片。可以使用以下命令手动分配分片:
在这个例子中,index_name
是问题分片所在的索引名称,shard
是分片的编号,node_name
是你想要分配分片的节点名称。allow_primary
是一个布尔值,表示是否允许将主分片分配到一个节点上