首页/云/可观测性速查/快照备份与恢复
日志平台52 条

快照备份与恢复

快照是集群级备份手段:先注册仓库(文件系统或对象存储),再按索引粒度创建与恢复;跨集群迁移也常用同一套流程。

可观测性速查云更新于 2026-10-13

快照备份与恢复是什么

快照是 Elasticsearch 的集群级备份手段:先注册一个仓库(文件系统共享目录或对象存储),再按索引粒度创建快照,需要时从快照恢复,跨集群迁移也常走同一套流程。快照按增量存储,但每个快照在逻辑上是完整独立的。日常做法是定期创建快照,加上周期性的恢复演练——只有演练过的备份才算备份。

基本信息

前置条件文件系统仓库需在 elasticsearch.yml 配 path.repo 并保证各节点可见同路径
仓库类型fs、s3、gcs、azure 等
常用接口/_snapshot、/_snapshot/<repo>/<snap>、.../_restore
适用版本Elasticsearch 7.x / 8.x
权限要求需要集群管理权限

典型使用场景

  • 日常备份:按天创建快照并保留最近若干份,应对误删与索引损坏
  • 集群迁移:新集群注册同一仓库后恢复指定索引,完成数据搬迁
  • 版本升级:升级前做快照,升级异常时快速回退
  • 误删恢复:按索引恢复并改名,避免直接覆盖正在使用的索引
  • 合规留存:按周期归档快照到对象存储,满足审计要求

注册、快照与恢复

注册、快照与恢复
# 注册文件系统仓库(各节点 elasticsearch.yml 需配 path.repo 指向同路径)
PUT /_snapshot/backup
{ "type": "fs", "settings": { "location": "/mnt/backups" } }

# 创建快照并等待完成
PUT /_snapshot/backup/snap-2026-10-12?wait_for_completion=true

# 恢复指定索引并改名,避免与在用索引冲突
POST /_snapshot/backup/snap-2026-10-12/_restore
{ "indices": "logs-app", "rename_pattern": "logs-app", "rename_replacement": "logs-app-restored" }

GET /_snapshot/_all    # 查看仓库与快照状态

常见故障与原因

现象原因处理方向
仓库不可用节点 path.repo 不一致或权限不足统一路径与属主后重试
快照部分成功分片不可用或磁盘空间不足先解决分片与空间问题再重建
恢复失败同名索引已存在且未关闭改用改名恢复或先关闭原索引
恢复很慢并发恢复分片数受限按需调整并发,避免压垮集群
恢复完成后要确认分片是否全部转回正常状态,并核对目标索引的文档数与关键字段,避免「恢复成功但数据不完整」的情况被忽略。

易错点

  • 文件系统仓库要求所有节点可见同一路径,挂载不一致会报仓库不可用
  • 恢复正在使用的索引会报冲突,需要先关闭索引或使用改名恢复
  • 只创建快照从不做恢复演练,真出事时才发现权限、路径或版本不兼容
  • 仓库与集群放在同一故障域(同一台机器或同一存储)上,本地故障会连备份一起丢失

数据来源与参考

  • Elastic 官方文档 · Snapshot and restore
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌