Elasticsearch 获取快照信息 API 详解
elasticsearch 项目地址: https://gitcode.com/gh_mirrors/elas/elasticsearch
概述
Elasticsearch 的快照功能是数据备份和恢复的核心组件,而获取快照信息 API 则是管理和监控快照状态的重要工具。本文将深入解析 Get Snapshot API 的使用方法、参数含义和实际应用场景。
API 基本用法
获取快照信息 API 的基本语法如下:
GET /_snapshot/<repository>/<snapshot>
其中:
<repository>
:快照仓库名称(必填)<snapshot>
:快照名称(必填),支持通配符和特殊值
特殊快照名称
_all
:获取仓库中所有快照信息_current
:获取当前正在运行的快照- 通配符
*
:匹配多个快照名称
权限要求
在使用此 API 前,需要确保用户具有以下权限之一:
monitor_snapshot
create_snapshot
manage
集群权限
关键查询参数
基本控制参数
-
ignore_unavailable(默认 false)
- 设为 true 时,忽略不可用的快照(如损坏的快照)
- 设为 false 时,遇到不可用快照会返回错误
-
verbose(默认 true)
- true:返回完整快照信息(包括版本、时间戳等)
- false:仅返回基本信息
-
index_names(默认 true)
- 是否在响应中包含索引名称列表
高级查询参数
-
分页与排序
sort
:排序字段(支持 start_time、duration、name 等)order
:排序方向(asc/desc)size
:返回结果数量限制after
:基于上次返回的 next 值进行分页offset
:基于数字偏移量分页
-
SLM 策略过滤
slm_policy_filter
:按快照生命周期策略过滤快照- 支持通配符和排除模式(如
*,-policy-a-*
)
响应体结构解析
典型的成功响应包含以下关键字段:
{
"snapshots": [
{
"snapshot": "snapshot_name",
"uuid": "唯一标识符",
"state": "快照状态",
"indices": ["索引列表"],
"start_time": "开始时间",
"end_time": "结束时间",
"duration_in_millis": 持续时间,
"shards": {
"total": 总shard数,
"successful": 成功数,
"failed": 失败数
}
}
],
"total": 匹配总数,
"remaining": 剩余未返回数
}
快照状态说明
IN_PROGRESS
:正在创建SUCCESS
:创建成功FAILED
:完全失败PARTIAL
:部分成功(需结合failures字段分析)
实际应用示例
示例1:获取单个快照详情
GET /_snapshot/my_repository/snapshot_2023
示例2:分页获取快照列表
首次请求:
GET /_snapshot/my_repository/snapshot*?size=2&sort=name
后续请求(使用返回的next值):
GET /_snapshot/my_repository/snapshot*?size=2&sort=name&after=xxxxxx
示例3:获取特定状态的快照
GET /_snapshot/my_repository/_current
最佳实践
- 监控场景:定期检查
_current
快照状态,监控备份进度 - 维护场景:结合
ignore_unavailable
参数处理损坏快照 - 报表场景:使用
sort
和size
参数生成备份执行报告 - 自动化场景:利用
next
和after
实现自动化分页处理
注意事项
- 当
verbose=false
时,部分高级参数(如排序、分页)将不可用 - 使用
_all
查询时,如有不可用快照会导致整个请求失败 - 分页查询时,
after
参数比offset
参数具有更好的并发一致性保证
通过合理使用 Get Snapshot API,管理员可以全面掌握 Elasticsearch 集群的快照状态,为数据备份策略提供有力支持。
elasticsearch 项目地址: https://gitcode.com/gh_mirrors/elas/elasticsearch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考