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

发布于 2024-09-17 05:05:23 字数 174 浏览 8 评论 0 原文

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

因此,我需要将 Solr 索引导出到一个文件中,这样如果有一天出现问题,我就能够轻松地将其导入回 Solr。

我该怎么做?

I'm running a Virtual Private Server where, every day at midnight, all files are backed up automatically by the VPS provider.

So I need to export the Solr index to a file, so that if something goes wrong someday, I'll be able to import it back to Solr with ease.

How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

单身狗的梦 2024-09-24 05:05:23

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 安装...一旦再次启动,只需重新填充缓存等。

但是:我希望 solr 不是您的主数据库?它的目的是成为一个搜索引擎,而不是数据库的替代品,甚至不是备份!
就像 mysql 复制很适合做负载平衡,但作为备份没用......
为什么?因为使用相同的查询,您最终可能会得到一个空索引。与 solr/lucene 一样。 ……或者出于很多很多其他原因,这些原因已经有更多聪明的人讨论过了。

请记住这一点,祝您有美好的一天!

The Solr database IS a (or a couple of) file(s).
There is a folder that looks something like this:

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

HOWEVER: it would suffice to save this folder. you can as well just backup your entire solr isntallation using incremental rsync or whatever... once started again only caches would need to be filled up newly etc.

BUT: i hope solr is not your primary database? its meant to be a search engine and not a replacement for a database and not even a backup!
just like mysql replications are nice to do load balancing but are useless as a backup...
why? because with the same query you could end up with an empty index. its just the same with solr/lucene. ... or for many, many other reasons that have far more brilliant people discussed already.

keeping that in mind i wish you a good day!

梦幻之岛 2024-09-24 05:05:23

请参阅我的其他答案 关于使用 Solr 的 ReplicationHandler 进行热备份。您只需 wget 一个 URL,Solr 就会安全地为您的数据目录创建快照。我不会使用 cp 拍摄快照。

Please see my other answer about taking hot backups using Solr's ReplicationHandler. You can just wget a URL and Solr will safely snapshot your data directory. I would not take a snapshot using cp.

像你 2024-09-24 05:05:23

如果您担心保持增量状态,可以配置许多 shell 脚本来运行,可以通过 cron 调度,也可以在提交和优化之后运行。

,请访问 http://wiki.apache.org/solr/SolrOperationsTools

要了解更多信息 需要注意的是,虽然 Solr 通常不用作主要的“记录系统”,但作为其他数据存储的辅助,但没有任何需要这样做!

在许多用例中,如果您丢失了 Solr 索引,那么您就会丢失数据。想象一个在互联网上抓取特定数据的网站。每个爬行结果的唯一副本可能只存在于 Solr 中,我认为,通过适当的备份,这是可以的!

If you are concerned about keeping incremental states, there are a number of shell scripts that can be configured to run, either scheduled via cron or after commits and optimizes.

Find out more at http://wiki.apache.org/solr/SolrOperationsTools

One thing I would note is that while Solr is probably typically not used as the primary "System of Record", but as an auxiliary to some other data store, there isn't anything that requires that!

There are many use cases where if you lost your Solr indexes then you would lose your data. Think a site that crawls the internet for specific data. The only copy of each crawl result might only be in Solr, and I think, with appropriate backups, that is okay!

紫﹏色ふ单纯 2024-09-24 05:05:23

在 Solr 8/9 版本中,solr 备份和恢复可通过其复制处理程序进行。

它将创建数据快照,您也可以稍后恢复。

在 solr 文档页面中,您可以找到更多有用的信息:

https://solr.apache.org/guide/8_9/making-and-restoring-backups.html#standalone-mode-backups

In Solr 8/9 version solr backup and restore is available via its replication handler.

It will create a snapshot of the data which you can also restore later.

Here in the solr documentation page you can find more useful information:

https://solr.apache.org/guide/8_9/making-and-restoring-backups.html#standalone-mode-backups

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文