如何将Solr索引转储/备份到文件?

时间:2010-08-28 15:17:14

标签: solr backup

我正在运行虚拟专用服务器,每天午夜,VPS提供商会自动 所有文件。

所以我需要将Solr索引导出到一个文件中,这样如果有一天出现问题,我就可以轻松地导入将它重新导入Solr

我该怎么做?

3 个答案:

答案 0 :(得分:11)

Solr数据库是一个(或几个)文件。 有一个看起来像这样的文件夹:

root@vs210044:/home/solr/apache-solr-1.4.0/example/solr/data/index# ls
segments.gen  _xzy.tii     _y26.tii     _y4f.tii     _y6o.tii    _y8n.tii  _y9i.tis  _y9k.fdt  _y9l.fdx  _y9m.fnm
segments_uud  _xzy.tis     _y26.tis     _y4f.tis     _y6o.tis    _y8n.tis  _y9j.fdt  _y9k.fdx  _y9l.fnm  _y9m.frq
_xzy_2n.del   _y26_20.del  _y4f_1z.del  _y6o_21.del  _y8n_2.del  _y9i.fdt  _y9j.fdx  _y9k.fnm  _y9l.frq  _y9m.nrm
_xzy.fdt      _y26.fdt     _y4f.fdt     _y6o.fdt     _y8n.fdt    _y9i.fdx  _y9j.fnm  _y9k.frq  _y9l.nrm  _y9m.prx
_xzy.fdx      _y26.fdx     _y4f.fdx     _y6o.fdx     _y8n.fdx    _y9i.fnm  _y9j.frq  _y9k.nrm  _y9l.prx  _y9m.tii
_xzy.fnm      _y26.fnm     _y4f.fnm     _y6o.fnm     _y8n.fnm    _y9i.frq  _y9j.nrm  _y9k.prx  _y9l.tii  _y9m.tis
_xzy.frq      _y26.frq     _y4f.frq     _y6o.frq     _y8n.frq    _y9i.nrm  _y9j.prx  _y9k.tii  _y9l.tis
_xzy.nrm      _y26.nrm     _y4f.nrm     _y6o.nrm     _y8n.nrm    _y9i.prx  _y9j.tii  _y9k.tis  _y9m.fdt
_xzy.prx      _y26.prx     _y4f.prx     _y6o.prx     _y8n.prx    _y9i.tii  _y9j.tis  _y9l.fdt  _y9m.fdx

但是:保存此文件夹就足够了。您也可以使用增量rsync或其他任何方式备份整个solr isntallation ...一旦再次启动,只需要新填充缓存等。

但是我希望solr不是你的主要数据库?它意味着成为一个搜索引擎,而不是数据库的替代品,甚至不是备份! 就像mysql复制很好做负载平衡但是没用作备份...... 为什么?因为使用相同的查询,您最终可能会得到一个空索引。与solr / lucene一样。 ...或许多其他原因已经讨论过更多优秀人才。

记住这一点,我祝你有个美好的一天!

答案 1 :(得分:3)

请参阅my other answer有关使用Solr的ReplicationHandler进行热备份的信息。您只需wget一个URL,Solr就可以安全地为您的数据目录创建快照。我不会使用cp拍摄快照。

答案 2 :(得分:1)

如果您担心保持增量状态,可以配置多个shell脚本来配置运行,可以通过cron或提交后进行优化和优化。

http://wiki.apache.org/solr/SolrOperationsTools

了解详情

我要注意的一点是,虽然Solr可能通常不被用作主要的“记录系统”,但作为其他数据存储的辅助,没有任何需要的东西!

在许多用例中,如果丢失了Solr索引,那么您将丢失数据。想一个抓取互联网获取特定数据的网站。每个抓取结果的唯一副本可能只在Solr中,我认为,通过适当的备份,这没关系!