首页/数据/NoSQL 速查/创建快照 _snapshot create
Elasticsearch89 条

创建快照 _snapshot create

快照按索引集合备份分片数据与集群状态:支持指定索引模式、忽略不可用索引、只备份部分全局状态;大数据量用异步加任务接口跟踪。

NoSQL 速查数据更新于 2026-10-13

创建快照是什么

快照把索引的分片数据与部分集群状态备份到已注册的仓库中,支持指定索引用模式、忽略不可用索引、选择是否包含全局状态。快照是增量存储:同名分片已有的段不会重复上传,因此每天执行实际传输量远小于数据总量。大数据量场景使用异步执行,再用任务或快照状态接口跟踪进度。

基本信息

接口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 把快照里的索引改名恢复到新索引,避免覆盖线上数据。

易错点

  • include_global_state 设为 false 时不备份模板与策略,灾难恢复后需要另行准备
  • 快照期间删除索引会导致该分片备份失败,先完成快照再删数据
  • 只创建快照不验证恢复流程,真正故障时才发现仓库或权限不可用
  • 把快照仓库放在被备份的同一存储上,存储故障时备份与数据一起丢失
  • 异步快照不跟踪状态,任务因仓库异常中断也不会被发现,需定期核对快照列表与分片计数

数据来源与参考

  • Elasticsearch Guide: Create snapshot API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌