Solr Cloud 备份
-------备份SolrCloud------------------------
创建备份,默认为snapshot.<name>:
http://172.28.5.32:11010/solr/activity_shard1_replica1/replication?command=backup
删除名字为 [snapshot.20141111133105714]的备份,注意20141111133105714才是name,前面的snapshot.不算:
http://172.28.5.32:11010/solr/activity_shard1_replica1/replication?command=deletebackup&name=20141111133105714
创建 name为[2014-11-11_15-37],保留最近的5个备份[numberToKeep=5],存储位置为指定位置[location=]
http://172.28.5.32:11010/solr/activity_shard1_replica1/replication?command=backup&name=2014-11-11_15-37&numberToKeep=5&location=/home/java1/programs/data/SolrBackUp/SolrSlave1/activity_shard1_replica1/data/
删除 name为[2014-11-11_15-37],存储位置为指定位置[location=]
http://172.28.5.32:11010/solr/activity_shard1_replica1/replication?command=deletebackup&name=2014-11-11_15-37&location=/home/java1/programs/data/SolrBackUp/SolrSlave1/activity_shard1_replica1/data/
查看复制详细信息:
http://172.28.5.32:11010/solr/activity_shard1_replica1/replication?command=details
<1>:备份方式:
使用/replication?command=backup方式备份,且为每一个core进行备份.
<2>: 还原方式1:
- Stop the Solr server.
- Copy a backup index to the data directory for each core. Remember to use a backup created from the same Alfresco instance.
- Restart the Solr server. Solr will start to track the indexes based on the state of the restored index.
<3>: 还原方式2:
数据目录中的index.properties中的内容: (例如: /usercard_shard1_replica3/data/index.properties)
index=index.20141110200201428
停止solr,将index=改为目标加载目录名称
即可,如果没有index.properties, 默认会加载 index 文件中的内容
参考1:http://stackoverflow.com/questions/7593184/change-solr-search-directory-to-my-custom-named-index-directory
You can also use the index.properties file to point to which directory Solr loads. It goes in the data directory and it has a index property pointing to the directory name to be used instead of 'index'
That's worked for me without issue. I believe this was done to help make replication work seamlessly.
参考2:http://blog.csdn.net/duck_genuine/article/details/6165314
对于下载文件内容,对应命令是filecontent。下载的文件显然需要放到临时目录中,这个临时目录和已有的索引目录(默认名字index)在同一数据目录下,只是命名为index.<时间戳>。下载完毕后,copy数据有两种情况:1)如果是完全下载,则不需要将临时目录中的文件copy到已有目录中,而是修改数据目录中的index.properties,标识索引目录为新生成的临时目录,而旧索引目录并不会被删除,可以手工删掉,当然,通常是不应该出现slave的Generation大于master的异常情况。2)通常就是把临时索引目录的文件copy到旧索引目录,copy时要把segments_N放到最后copy,避免copy中途出现异常造成数据被毁。
--------------------------------------------
没有Solr数据备份时,且 全部都down掉且recovery不过来时, 挑一个数据较全的主Shard节点,然后把这个shard节点的其它副本从SolrCloud通过curl方式去掉,然后再通过curl方式加上,SolrCloud会自动将这个Shard的主节点数据同步到刚才加上的从节点