如何将 Solr 索引转储/备份到文件?
我正在运行一个虚拟专用服务器,每天午夜,VPS 提供商都会自动备份所有文件。
因此,我需要将 Solr 索引导出到一个文件中,这样如果有一天出现问题,我就能够轻松地将其导入回 Solr。
我该怎么做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我正在运行一个虚拟专用服务器,每天午夜,VPS 提供商都会自动备份所有文件。
因此,我需要将 Solr 索引导出到一个文件中,这样如果有一天出现问题,我就能够轻松地将其导入回 Solr。
我该怎么做?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
Solr 数据库是一个(或几个)文件。
有一个文件夹看起来像这样:
但是:保存这个文件夹就足够了。您也可以使用增量 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:
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!
请参阅我的其他答案 关于使用 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 usingcp
.如果您担心保持增量状态,可以配置许多 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!
在 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