Elasticsearch snapshot / restore doc表明索引快照进程是增量的。
请您解释一下这是什么意思,并确认每个快照在恢复方面都是自主的?
用例:
让我们说我已经创建了存储库和第一个包含所有索引的快照A.
稍后(例如一小时后)我创建了自A时刻以来已经发生变化的B时刻所有索引的新snapshotB。
有两个问题:
snapshotB的大小是否等于所有索引的实际大小,并包含B时刻的所有数据或仅包含部分数据:snapshotA和snapshotB之间的区别?
如果是第二个,那么elasticseach如何计算这个差异?
如果是第二个,我们可以安全地删除snapshotA而不会丢失snapshotB的数据吗?
感谢。
答案 0 :(得分:1)
快照在文件级别是增量的,而不是文档级别的。 每个分片都是一个Lucene索引,每个Lucene索引在后台执行automatic segments merging。这些段是考虑用于快照的文件。
如果在时间A,您的索引有5个段,并且当它们的B 3合并为更大的段时,在时间B拍摄的快照将仅在快照存储库中添加此新段。在快照的元数据中,它将记录它需要此文件以及创建快照A时已添加的其他2个文件。
如果使用普通DELETE snapshot API,Elasticsearch将删除任何其他现有快照不需要的文件。在此示例中,ES将删除合并为较大段的3个段。建议不要删除快照的任何其他选项,否则可能导致数据丢失。