我们有一个SolrCloud设置,包含20个分片,每个分片只有1个副本,在8个服务器上提供。
服务器出现故障后,我们剩下16个分片,这意味着某些compositeId散列范围不是由任何内核托管的。不知何故,服务器再次出现后,分片/核心没有回来。我可以在/ live_nodes中看到服务器。
但一切都不错:集合中的数据是易失性的,TTS为30分钟,我们有一个故障转移,只要“添加”操作失败就会尝试新的随机compositeId。
我的问题是:是否可以重新创建丢失的分片,还是必须从头开始删除和创建集合?
我知道缺少哪些哈希范围,但CREATESHARD API调用不支持使用'compositeId'路由器的分片。我不能使用SPLITSHARD,因为它只划分原始分片的哈希值。
(我们使用Solr 5.4.0并且在6.1发布之前无法升级,参考SOLR-8940)
答案 0 :(得分:0)
所以,我在solr-user邮件列表中asked the same question。 answer I got建议使用zkNavigator并编辑state.json
,使用正确的参数添加缺少的分片。之后需要进行ADDREPLICA API调用。
我还没有尝试过,但如果问题再次发生,我会这样做。