SolrCloud集群数据备份恢复方案

1.solr集群备份
(1) solr集群数据备份首先预估磁盘空间
a. 执行备份前需要配置solr集群的使用hdfs备份。
对每台solr机器,在server/solr/solr.xml配置中
增加如下几行。
<backup>
<repository name="hdfs" class="org.apache.solr.core.backup.repository.HdfsBackupRepository" default="false">
<str name="location">hdfs://172.16.199.70:9000/solrbackup</str>
<str name="solr.hdfs.home">hdfs://172.16.199.70:9000/solrhome</str>
<str name="solr.hdfs.buffer.size">262144</str>
</repository>
</backup>
其中location和solr.hdfs.home参数配置的是hdfs上的目录地址,应替换成实际的hdfs地址。
配置修改保存后,重启每个solr服务。

b. 备份方式:对每个集合使用如下的命令进行备份。
admin/collections?action=BACKUP&name=backupname&collection=collectionname&location=backupdir&repository=repositoryname&async=asyncid
其中:
collection参数为要备份的集合的名称。
location 备份的数据位置(使用hdfs目录,目录权限设置为777)
name 备份的名称。
repository 要用于备份的存储库的名称(使用hdfs即可)
可以参考如下具体命令:http://172.16.199.70:9090/solr/admin/collections?action=BACKUP&name=testcollectionbackup&collection=newtestcollection&location= hdfs://172.16.199.70:9000/solrbackup &async=345576&repository=hdfs
备注:
目前内网中有部分solr集合通过http://172.16.199.70:9090管理,有部分集合数据通过http://172.16.199.70:8080管理,备份时需要通过界面进行区分。

c. 可以根据async参数值查看备份任务的进展状况。
命令:admin/collections?action= REQUESTSTATUS& requestid=requested
可以参考如下具体命令:http://172.16.199.70:9090/solr/admin/collections?action=REQUESTSTATUS&requestid=345544
备注:此处的requestid对应备份命令中async参数值。

2 solr集群数据恢复
(1) 备份数据待恢复的目的新集群节点和旧集群节点数量一致,也许要配置solr集群的使用hdfs备份,具体参考1.(1).a这小章节。
(2) 运行如下的命令还原集合:
admin/collections?action=RESTORE&name=backupname&collection=collectionname&location=backupdir&repository=repositoryname&async=asyncid
RESTORE操作将在collection参数中创建一个具有指定名称的集合。
具体可以参考下面的命令:
http://172.16.200.110:9983/solr/admin/collections?action=RESTORE&name=testcollectionbackup&collection=testcollectionbackup2&location=hdfs://172.16.199.70:9000/solrbackup&async=346570&repository=hdfs

数据恢复任务同样可以通过admin/collections?action= REQUESTSTATUS& requestid=requested,这个命令查看任务的进展状况。
查看进展的结果如下则显示该collection恢复已经完毕。
"responseHeader":{
"status":0,
"QTime":2},
"status":{
"state":"completed",
"msg":"found [346570] in completed tasks"}}
也可以核对恢复后的文档数量和原collection文档数量是否一致。

(3) 恢复后的collection中的shard数量和原collection数量是相同的,但每个shard只有一个replica。可以根据需要对shard增加分片,可以参考如下命令:
http://172.16.200.110:8983/solr/admin/collections?action=ADDREPLICA&collection=testcollectionback2&shard=shard1&async=34567

posted @ 2020-07-16 15:14  seufelix  阅读(1030)  评论(0编辑  收藏  举报