簡體   English   中英

在主服務器中禁用復制是在 SOLR 7.7 中自動從從屬服務器中刪除記錄

[英]Disabling replication in master is deleting records from slave automatically in SOLR 7.7

我們有 1 個主設備和 2 個從設備配置。 所有服務器都與數百萬個文檔同步。 當我禁用主服務器的復制時,從服務器中的文檔會自動刪除。 在主服務器文檔仍然存在,我也可以搜索。 如果有人在 SOLR 中遇到此類問題,請幫助我。 solr 4.7 中的相同配置工作正常。

主配置:

   <lst name="master">
     <str name="replicateAfter">commit</str>
     <str name="replicateAfter">startup</str>
     <str name="confFiles">managed-schema,stopwords.txt</str>
   </lst>

從站配置:

<lst name="slave">
    <str name="masterUrl">https://example.com/solr/${solr.core.name}/replication</str>
    <str name="pollInterval">00:00:60</str>
</lst>

更改下面的 java class 並重建 solr。

solr-7.7.2\solr\core\src\java\org\apache\solr\handler\IndexFetcher.java

if (latestVersion == 0L) {
        if (forceReplication && commit.getGeneration() != 0) {
          // since we won't get the files for an empty index,
          // we just clear ours and commit
          log.info("New index in Master. Deleting mine...");

如果在 solr7 之后條件“forceReplication”條件不可用,則在第二個中。 在 solr 6 'forceReplication' 中。 添加此條件並重建 solr。

如果您需要更多幫助,您可以發表評論。


也有一些替代解決方案可用。 根據您的要求,您可以選擇。 如果您僅因為在每次提交到 master 后不需要進行復制而禁用復制,則只能在優化調用而不是提交調用之后啟用復制。 您可以從 UI 禁用啟用/禁用復制按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM