一般对于数据量在千万级一下,单机版的solr足以应付日常查询。相对于solr集群不同,单机版的solr一旦服务器出现问题,不仅数据丢失还回造成查询应用崩溃,所以建立主从配置进行数据备份或者备用服务器还是比较重要的。
搭建好两个solr服务,一个在window上运行作为从服务器,用于备份数据,一个主服务器运行在linux上,solr单机版搭建(6.4.2)参照
linux搭建solr6.4.2
。
solr用于备份是利用了replication handler,如果没有从服务器,主服务器直接进行备份可以将数据在主服务器本机做一次备份,可以使用http执行或者curl方法执行,下面是直接在地址栏执行:
执行成功会返回状态,status为0就是执行成功:
主服务器不需要配置 replication就可以直接在core的data目录下生成数据的备份:
想要从服务器隔断时间就去查询主服务器是否更新数据进行备份,就需要配置从服务器的solrconfig.xml文件,添加replication的handler:
<!--备份-->
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<str name="masterUrl">http://192.168.10.165:8080/solr/jsonlocal</str>
<str name="pollInterval">00:00:20</str>
</lst>
</requestHandler>
masterUrl:主服务器的core地址
pollInterval:轮训去查询数据备份的时间,这里是20秒
设置好从服务器的配置文件后,启动两个solr服务,直接在浏览器地址栏输入从服务器的执行地址:
可以在从服务的core下生成主服务器的数据备份以及一些参数文件:
在solr的admin页面也可以查到主服务器的数据:
关于这一块的详细说明可以参照官方文档:
想要恢复数据直接把从服务器的index下面的数据文件复制回去就行了。