我正在运行虚拟专用服务器,每天午夜,VPS提供商会自动 所有文件。
所以我需要将Solr索引导出到一个文件中,这样如果有一天出现问题,我就可以轻松地导入将它重新导入Solr
我该怎么做?
答案 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中,我认为,通过适当的备份,这没关系!