Elasticsearch快照恢复与合并

我正在尝试与Elasticsearch有关的备份和恢复数据。

我可以使用curator将数据备份到快照中,没有任何问题。

然后我物理删除索引相关的文件(有点模拟高清崩溃等)

我重新启动Elasticsearch并在Kibana中validation数据不再存在。

如果我然后去恢复我做的最新的快照; Elasticsearch中存储的最后一个快照和恢复时间之间的数据都将丢失。

恢复快照似乎并没有与索引中的较新数据合并,我无法在网上find这个问题的任何引用,但是可靠地恢复备份不仅仅是抛出较新的数据,而且我必须丢失一些东西?

总结:

备份目录中的快照样本:

snapshot-curator-20150830191221 snapshot-curator-20150901225612 snapshot-curator-20150902090327 

这是由以下命令生成的:

 curator snapshot --repository es_backup indices --all-indices 

然后删除特定date的索引的文件:

 rm -rf /mnt/storage/var/lib/elasticsearch/elasticsearch/nodes/0/indices/logstash-production-media-2015.09.02 

重新启动Elasticsearch(我最初没有这样做,数据总是在那里,似乎Java或机器缓冲区保留在数据和Elasticsearch没有意识到它已经消失了!)

validationdate数据全部在Kibana中消失。

closures所有指数:

 curator close indices --all-indices 

还原最新的快照:

 curl -XPOST http://localhost:9200/_snapshot/es_backup/curator-20150729133045/_restore 

查看Kibana时删除的数据回来了,但是在快照被采取和恢复时间结束之间的任何数据被放入elasticsearch。

例如上午10点拍摄的最后快照。 在下午1点恢复。 从上午10点到下午1点的数据在恢复后消失。

那么我做错了什么? 自从上一次拍摄快照以来,如何合并存储在Elasticsearch中的当前较新数据?

谢谢!

不幸的是,似乎合并是不可能的。

对于我在ES论坛上发布的问题的回答,我没有得到任何答复:

https://discuss.elastic.co/t/restore-from-backup-and-merge-with-newer-data/28760

快照是数据的时间点副本。 当你恢复的时候,恢复到那个时间点。

目前没有办法像这样合并。

一个build议是恢复到一个不同的索引名称,然后使用一个别名,指向这两个索引进行search,这可能是一个去,但我会认为这将导致重复的数据被返回search。

也许解决的办法是有两个节点,每个节点都有一个数据副本,但是大型数据存储显然可能会占用更多的空间。