从事务日志中及时将Solr 4.1索引恢复到pioint?

从事务日志中及时将Solr 4.1索引恢复到pioint?,solr,Solr,我不小心替换了我的有用文档,删除了所有文档并插入了其他文档。我注意到我有交易日志。是否有方法将索引从同一时间点恢复到某个时间点 顺便说一句,它很有用,但不是关键数据,但有人可能需要恢复关键数据:-)我不知道如何恢复丢失的数据(或者如果可能的话)。但为了防止这种情况再次发生,您可以使用Solr的复制来创建常规备份。配置如下所示: <requestHandler name="/replication" class="solr.ReplicationHandler" > <lst

我不小心替换了我的有用文档,删除了所有文档并插入了其他文档。我注意到我有交易日志。是否有方法将索引从同一时间点恢复到某个时间点


顺便说一句,它很有用,但不是关键数据,但有人可能需要恢复关键数据:-)

我不知道如何恢复丢失的数据(或者如果可能的话)。但为了防止这种情况再次发生,您可以使用Solr的复制来创建常规备份。配置如下所示:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="master">
    <str name="enable">true</str>
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">optimize</str>

    <str name="backupAfter">optimize</str>
    <str name="maxNumberOfBackups">3</str>
  </lst>
</requestHandler>

符合事实的
犯罪
优化
优化
3.

完整配置选项在

中进行了描述,因为它目前的状态是,不,您不能为此使用tlogs

在阅读了“”之后,特别是关于transactionlogs的第一小段

事务日志(tlog):为恢复目的写入原始文档的文件。在SolrCloud中,每个节点都有自己的tlog。更新时,整个文档将写入tlog。对于原子更新,它仍然是整个文档,包括从旧版本文档读取的数据。换句话说,写入tlog的文档不是原子更新的“增量”。tlog对于一致性至关重要,如果JVM在段关闭之前停止,那么tlog用于使索引更新

因此,TLOG用于数据一致性,而不是备份。

参考答案:

我也遇到了同样的问题,我找到了一个解决方案(变通方法):打开tlog文件并删除文件末尾的“ƒD`-SOLR_tlog_end”,然后启动SOLR。tlog文件的内容被索引/提交到索引。在我的测试用例中,文件夹中只有一个tlog文件

要找到您应该删除的字符,只需在AdminWebInterface中的“Documents”下添加一个示例文档,该文档的值为“commit within”100000,然后立即停止solr。在solr进行提交之前停止solr是很重要的(时间内提交应该很高)。然后将新的tlog文件复制到桌面或其他文件夹中。再次启动solr并比较这两个文件,然后您将看到在将tlog添加到索引后,solr会附加“ƒD`-solr_tlog_END”字符串


简短信息:如果solr在没有提交的情况下关闭,则使用tlog将文档添加到索引中。如果solr再次启动,则使用tlog将未提交的文档添加到索引。

solrconfig.xml
中是否配置了
deletionPolicy
?如果是,您会在问题中更新它吗?它可以看。它从来没有被配置过(和股票一样:东西被评论过)是的,它可以在:关于Madde中看到我的评论