--- title: "没有可用的主分片用于分片 shard - 如何解决此 Elasticsearch 异常" date: 2026-01-17 lastmod: 2026-01-17 description: "当 Elasticsearch 无法找到指定分片的任何主分片时会发生此错误。这可能是由于网络分区、节点故障或配置问题导致的。" tags: ["分片", "集群健康", "节点故障"] summary: " 版本: 8.2-8.9 简而言之,当 Elasticsearch 无法找到指定分片的任何主分片时,会发生此错误。这可能是由于网络分区、节点故障或配置问题导致的。要解决此问题,您可以尝试以下方法:1)检查集群健康状况,确保所有节点都已连接并正常工作。2)验证分片分配设置,必要时进行调整。3)如果节点发生故障,请替换它或重新分配分片。4)如果问题仍然存在,请考虑增加主分片的数量。 日志上下文 # 日志 " no primary shards available for shard [" + shard + “]” 的类名是 TransportGetCheckpointAction.java。 我们从 Elasticsearch 源代码中提取了以下内容,以供那些寻求深入上下文的人参考: } String nodeId = shard.currentNodeId(); nodesAndShards.computeIfAbsent(nodeId; k -> new HashSet<>()).add(shard.shardId()); } else { throw new NoShardAvailableActionException(shard.shardId(); " no primary shards available for shard [" + shard + "]"); } } return nodesAndShards; } " --- > **版本:** 8.2-8.9 简而言之,当 Elasticsearch 无法找到指定分片的任何主分片时,会发生此错误。这可能是由于网络分区、节点故障或配置问题导致的。要解决此问题,您可以尝试以下方法:1)检查集群健康状况,确保所有节点都已连接并正常工作。2)验证分片分配设置,必要时进行调整。3)如果节点发生故障,请替换它或重新分配分片。4)如果问题仍然存在,请考虑增加主分片的数量。 日志上下文 ----------- 日志 " no primary shards available for shard [" + shard + "]" 的类名是 [TransportGetCheckpointAction.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,以供那些寻求深入上下文的人参考: ```java } String nodeId = shard.currentNodeId(); nodesAndShards.computeIfAbsent(nodeId; k -> new HashSet<>()).add(shard.shardId()); } else { throw new NoShardAvailableActionException(shard.shardId(); " no primary shards available for shard [" + shard + "]"); } } return nodesAndShards; } ```