如何删除 Elasticsearch 中的快照数据?

How to delete a snapshot data in Elasticsearch?

When a repository is unregistered, Elasticsearch only removes the reference to the location where the repository is storing the snapshots. The snapshots themselves are left untouched and in place.

因此 Elasticsearch DELETE /_snapshot/my_backup 不会删除数据本身。

ls备份目录看到这些文件,删除快照应该删除哪些文件? (假设我可以删除所有快照)

-rw-rw-r--   1 mainserver mainserver  18K 12월 31 18:53 index-0
-rw-rw-r--   1 mainserver mainserver    8 12월 31 18:53 index.latest
drwxrwxr-x 185 mainserver mainserver  12K 12월 31 15:33 indices
-rw-rw-r--   1 mainserver mainserver  86K 12월 31 15:33 meta-NLs9MkZ2R9GYyNPViJzeDA.dat
-rw-rw-r--   1 mainserver mainserver 4.5K 12월 31 18:53 snap-NLs9MkZ2R9GYyNPViJzeDA.dat

注册和注销存储库不会触及该存储库中的各个快照。这只是为了让 Elasticsearch 知道存储库,然后您可以使用它来创建快照或从快照恢复。 Elasticsearch 将了解您的存储库中可用的快照(因此,通过 Elasticsearch 手动 fiddle 目录 "managed" 的 omg 文件系统级别绝对不是一个好主意。

当不再需要存储库时,您应该先注销它,然后再擦除整个目录。

Elasticsearch 的快照恢复机制正在创建增量快照。增量 backups/snapshots 的 "unit" 是 Lucene 段。出于效率目的,后续快照仅指向先前快照中已经存在的段,只需要将新段复制到存储库中。

如果要从存储库中删除特定快照,请执行 DELETE /_snapshot/<my_snapshot>。这将删除任何其他快照不再引用的所有 Lucene 段。如果您的其他快照仍在使用这些段,则不会从磁盘中删除任何内容。