📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.17-8.9

简而言之,当 Elasticsearch 无法访问指定索引的所有主分片时会出现此错误,可能是由于节点故障、网络问题或磁盘空间问题引起的。要解决此问题,您可以尝试以下操作:1) 检查节点的健康状况,确保它们都正常运行。2) 验证网络连接。3) 确保有足够的磁盘空间。4) 如果分片未分配,使用集群重新路由 API 手动分配。5) 如果可以接受数据丢失,可以删除并重新创建索引。

日志上下文 #

日志 “not all primary shards of [” + DATABASES_INDEX + “] index are active” 类名是 GeoIpDownloader.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:

var clusterState = clusterService.state();
 var geoipIndex = clusterState.getMetadata().getIndicesLookup().get(GeoIpDownloader.DATABASES_INDEX);
 if (geoipIndex != null) {
 logger.trace("The {} index is not null"; GeoIpDownloader.DATABASES_INDEX);
 if (clusterState.getRoutingTable().index(geoipIndex.getWriteIndex()).allPrimaryShardsActive() == false) {
 throw new ElasticsearchException("not all primary shards of [" + DATABASES_INDEX + "] index are active");
 }
 var blockException = clusterState.blocks().indexBlockedException(ClusterBlockLevel.WRITE; geoipIndex.getWriteIndex().getName());
 if (blockException != null) {
 throw blockException;
 }