📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

从快照仓库中删除一个或多个快照。

API 格式 #

DELETE /_snapshot/{repository}/{snapshot}

API 作用 #

该 API 用于从快照仓库中删除快照:

  • 删除快照并清理所有关联文件
  • 保留与其他快照共享的文件
  • 支持同时删除多个快照

API 参数 #

路径参数 #

参数类型是否必填默认值描述
{repository}String-快照仓库名称
{snapshot}String-快照名称,支持逗号分隔的多个快照

查询参数 #

参数类型是否必填默认值描述
master_timeoutTime30s等待主节点连接的超时时间

请求示例 #

删除单个快照 #

DELETE /_snapshot/my_backup/snapshot_1

删除多个快照 #

DELETE /_snapshot/my_backup/snapshot_1,snapshot_2,snapshot_3

设置主节点超时 #

DELETE /_snapshot/my_backup/snapshot_1?master_timeout=5m

响应示例 #

成功响应 #

{
  "acknowledged": true
}

响应字段说明 #

字段类型描述
acknowledgedBoolean请求是否被集群确认。true 表示快照删除已成功启动

错误条件 #

API 可能在以下情况下失败:

错误描述
仓库不存在指定的快照仓库不存在
快照不存在指定的快照不存在
超时等待主节点连接超时
权限不足没有执行此操作的权限
快照正在使用快照当前正在被其他操作使用
仓库已关闭仓库已关闭或不可用

实现细节 #

多快照支持 #

API 支持通过逗号分隔快照名称同时删除多个快照:

DELETE /_snapshot/my_repo/snap1,snap2,snap3

文件清理策略 #

  • 删除所有与快照关联的文件
  • 保留共享文件:与其他至少一个现有快照共享的文件不会被删除

使用场景 #

  1. 存储管理:删除过期快照释放存储空间
  2. 备份维护:定期清理旧快照
  3. 快照更新:删除旧快照后创建新的完整快照
  4. 错误恢复:删除损坏或失败的快照

注意事项 #

  1. 不可恢复:删除后快照无法恢复
  2. 共享文件:与其他快照共享的文件会被保留
  3. 正在进行的快照:正在创建中的快照无法删除
  4. 存储释放:删除后存储空间可能不会立即释放

相关操作 #

  • POST /_snapshot/{repository}/{snapshot}:创建快照
  • GET /_snapshot/{repository}/{snapshot}:查询快照信息
  • GET /_snapshot/{repository}:查询仓库信息
  • POST /_snapshot/{repository}/_cleanup:清理仓库

实现文件 #

  • REST 处理器RestDeleteSnapshotAction.java
  • 请求类DeleteSnapshotRequest.java
  • 响应类AcknowledgedResponse.java