创建快照是什么
快照把索引的分片数据与部分集群状态备份到已注册的仓库中,支持指定索引用模式、忽略不可用索引、选择是否包含全局状态。快照是增量存储:同名分片已有的段不会重复上传,因此每天执行实际传输量远小于数据总量。大数据量场景使用异步执行,再用任务或快照状态接口跟踪进度。
基本信息
| 接口 | PUT /_snapshot/<仓库>/<快照名> |
|---|---|
| 常用参数 | wait_for_completion=false 异步、indices 指定范围、include_global_state |
| 跟踪 | GET /_snapshot/<仓库>/<快照>/_status 或 _cat/snapshots/<仓库> |
| 前置条件 | 仓库需先用 PUT /_snapshot/<仓库> 注册 |
| 增量特性 | 同名分片已有段不再重复上传 |
| 适用版本 | Elasticsearch 7.x / 8.x |
典型使用场景
- 日常备份:按天对业务索引做快照
- 迁移前留底:重建索引或升级前保存一份
- 误删恢复:从最近快照恢复被删索引
- 冷数据归档:把历史索引快照后释放本地磁盘
- 升级演练:用快照在测试集群恢复验证
- 保留策略:结合生命周期策略自动快照
示例
示例
PUT /_snapshot/my_backup/snapshot_2026-10-01?wait_for_completion=false
{
"indices": "logs-*,metrics-*", # 指定要备份的索引范围
"ignore_unavailable": true, # 缺失索引不报错
"include_global_state": false # 不含全局状态,便于按需恢复
}
GET /_cat/snapshots/my_backup?v&s=start_epoch:desc # 查看快照列表
GET /_snapshot/my_backup/snapshot_2026-10-01/_status # 查看进度
POST /_snapshot/my_backup/snapshot_2026-10-01/_restore # 恢复(默认恢复全部索引)参数与状态读法
| 项 | 含义 | 注意点 |
|---|---|---|
| indices | 备份范围 | 支持通配符 |
| ignore_unavailable | 忽略缺失索引 | 滚动索引场景建议开启 |
| include_global_state | 是否含集群状态 | 关闭后模板需另行准备 |
| state | 快照状态 | SUCCESS 才可放心 |
| shards | 分片成功失败计数 | failed 非 0 需排查 |
快照是增量存储:同名分片已有的段不会被重复上传,因此可以每天执行而实际增量传输量很小。
include_global_state 设为 false 时不备份索引模板与生命周期策略,灾难恢复后需要另行准备这些配置。
恢复时可指定 indices 与 rename_pattern 把快照里的索引改名恢复到新索引,避免覆盖线上数据。