---
title: "查询快照状态"
date: 2026-02-11
lastmod: 2026-02-11
description: "介绍如何在 Easysearch 中查询快照的当前状态和进度。"
tags: ["快照", "状态", "监控"]
summary: "此 API 用于获取快照的当前状态信息。
API # GET /_snapshot/_status GET /_snapshot/{repository}/_status GET /_snapshot/{repository}/{snapshot}/_status API 的作用 # 返回快照的当前状态信息,包括:
正在进行中的快照:正在执行的快照进度 已完成的快照:快照的详细统计信息 快照统计:文档数量、字节数、分片状态等 API 的参数 # 路由参数 # 参数 类型 是否必需 描述 repository string 可选 仓库名称
默认:_all(所有仓库) snapshot string 可选 快照名称
默认:所有快照 查询字符串参数 # 参数 类型 是否必需 默认值 描述 ignore_unavailable boolean 可选 false 是否忽略不可用的快照"
---
此 API 用于获取快照的当前状态信息。
## API
```
GET /_snapshot/_status
GET /_snapshot/{repository}/_status
GET /_snapshot/{repository}/{snapshot}/_status
```
## API 的作用
返回快照的当前状态信息,包括:
- **正在进行中的快照**:正在执行的快照进度
- **已完成的快照**:快照的详细统计信息
- **快照统计**:文档数量、字节数、分片状态等
## API 的参数
### 路由参数
| 参数 | 类型 | 是否必需 | 描述 |
|------|------|----------|------|
| `repository` | string | 可选 | 仓库名称
默认:`_all`(所有仓库) |
| `snapshot` | string | 可选 | 快照名称
默认:所有快照 |
### 查询字符串参数
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|------|------|----------|--------|------|
| `ignore_unavailable` | boolean | 可选 | false | 是否忽略不可用的快照
`true`:遇到不可用快照不报错
`false`:不可用快照会抛出异常 |
| `master_timeout` | time | 可选 | 30s | 等待主节点发现的超时时间 |
## 请求示例
```bash
# 查询所有仓库中所有快照的状态
GET /_snapshot/_status
# 查询指定仓库中所有快照的状态
GET /_snapshot/my-repo/_status
# 查询指定仓库中特定快照的状态
GET /_snapshot/my-repo/snapshot1/_status
# 忽略不可用的快照
GET /_snapshot/_status?ignore_unavailable=true
# 设置主节点超时时间
GET /_snapshot/_status?master_timeout=60s
```
## 响应示例
### 成功响应 - 正在进行中的快照
```json
{
"snapshots": [
{
"snapshot": "snapshot1",
"repository": "my-repo",
"state": "IN_PROGRESS",
"indices": ["index1", "index2", "index3"],
"shards": {
"total": 9,
"pending": 3,
"successful": 6,
"failed": 0
},
"stats": {
"incremental": {
"file_count": 15,
"size_in_bytes": 524288000
},
"total": {
"file_count": 15,
"size_in_bytes": 524288000
},
"start_time_in_millis": 1707033600000,
"time_in_millis": 15000
}
}
]
}
```
### 成功响应 - 已完成的快照
```json
{
"snapshots": [
{
"snapshot": "snapshot1",
"repository": "my-repo",
"state": "SUCCESS",
"indices": ["index1", "index2", "index3"],
"shards": {
"total": 9,
"successful": 9,
"failed": 0
},
"stats": {
"incremental": {
"file_count": 150,
"size_in_bytes": 5242880000
},
"total": {
"file_count": 150,
"size_in_bytes": 5242880000
},
"start_time_in_millis": 1707033600000,
"time_in_millis": 45000
}
}
]
}
```
### 响应字段说明
| 字段 | 描述 |
|------|------|
| `snapshot` | 快照名称 |
| `repository` | 仓库名称 |
| `state` | 快照状态
`IN_PROGRESS`:进行中
`SUCCESS`:成功
`FAILED`:失败
`PARTIAL`:部分成功 |
| `indices` | 快照包含的索引列表 |
| `shards.total` | 总分片数 |
| `shards.pending` | 等待处理的分片数 |
| `shards.successful` | 成功的分片数 |
| `shards.failed` | 失败的分片数 |
| `stats.incremental.file_count` | 增量文件数量 |
| `stats.incremental.size_in_bytes` | 增量文件大小(字节) |
| `stats.total.file_count` | 总文件数量 |
| `stats.total.size_in_bytes` | 总文件大小(字节) |
| `stats.start_time_in_millis` | 开始时间(毫秒) |
| `stats.time_in_millis` | 耗时(毫秒) |
## 使用场景
1. **进度监控**:监控正在进行中的快照进度
2. **问题排查**:诊断快照失败的原因
3. **信息查询**:获取已完成的快照统计信息
4. **容量评估**:评估快照占用的存储空间
## 快照状态说明
| 状态 | 描述 |
|------|------|
| `IN_PROGRESS` | 快照正在进行中 |
| `SUCCESS` | 快照成功完成 |
| `FAILED` | 快照失败 |
| `PARTIAL` | 部分分片失败 |
| `INCOMPATIBLE` | 快照与当前版本不兼容 |
## 监控建议
1. **定期检查**:定期检查快照进度
2. **失败告警**:对失败的快照设置告警
3. **存储监控**:监控快照占用的存储空间
4. **时间跟踪**:记录快照完成时间用于容量规划
## 注意事项
1. 此 API 只支持 GET 方法
2. 默认查询所有仓库和所有快照
3. 不可用的快照默认会导致错误,使用 `ignore_unavailable=true` 忽略
4. 正在进行中的快照会返回实时进度信息
## 相关文档
- [创建快照](./create-snapshot.md)
- [查询快照信息](./get-snapshot-info.md)
- [删除快照](./delete-snapshot.md)
- [恢复快照](./restore-snapshot.md)