Yas*_*don 1 elasticsearch elasticsearch-snapshot
我定期在 s3 存储桶中拍摄 ES 集群的快照,因此我想知道,如果我从集群中删除旧文档并定期添加新文档,那么在拍摄快照后,ES 如何处理这种情况(无论文档如何)也从我以前的快照中删除,或者 ES 如何保留我的文档的备份。请解释?
ES拍快照时,ES不是拍快照docs,而是拍快照segments。当然,这些段包含文档。
为了理解增量的概念,让我们看下面的例子。
假设有一个名为 的my_index索引1 primary shard (shard 0)。当数据写入索引时,它将为分片创建段文件。
最初,索引 my_index 可能如下所示:
"my_index"
"consists of shard 0"
"shard 0 consists of segements A,B,C"
Run Code Online (Sandbox Code Playgroud)
您在时间 T1 拍摄索引 my_index 的快照 S1。
快照 S1 包含以下元数据:
Index: my_index
Shards: 0
Segments: A,B,C
And then it will copy the segment files.
Run Code Online (Sandbox Code Playgroud)
现在,您可以对更多数据建立索引。ES将段B和C合并为新的段D,并为新数据添加新的段E。一旦段被合并,旧的段就会从分片中删除。同样,当删除文档时,会发生段合并
现在索引 my_index 的分片 0 包含段 A、D、E
您在时间 T2 拍摄索引 my_index 的快照 S2。S2 将检查它需要哪些文件。
It will NOT copy segment A (because it already exists in the repo - this is what is meant by incremental).
It will copy segment D
it will copy segment E
Run Code Online (Sandbox Code Playgroud)
快照 S2 包含以下元数据:
Index: my_index Shards: 0 Segments: A,D,E
Run Code Online (Sandbox Code Playgroud)
这里增量是什么? 增量性质是针对新段文件而不一定针对新数据。对于快照 S2,段 A 未被复制,因为它已包含在 S1 中。
删除快照 S1 时会发生什么情况?
1. 段 B 和 C 将被删除,因为它们不再被引用
2. 排除段 A,因为它被快照 S2 引用
删除索引 my_index 时会发生什么情况?
快照仍将包含与 my_index 相关的段文件,允许您随时恢复索引。
删除文档后会发生什么? 当文档被删除时,最终段文件被合并,新的段被创建。因此,当您在删除文档后拍摄快照时,快照中将没有该文档。
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
889 次 |
| 最近记录: |