数据备份与恢复

更新时间:
复制 MD 格式

阿里云 Elasticsearch 在控制台的数据备份页面提供了统一的备份与恢复能力。您可以通过自动备份策略定时生成快照,也可以手动创建快照;快照可保存到 ES 托管仓库或您自己的 OSS 仓库,并可恢复到当前实例或同地域的其他已有实例。当遇到数据误删除、应用逻辑错误等情况时,可从备份快照中恢复数据。

注意事项

  • 数据备份与恢复依赖 elasticsearch-repository-oss 插件,阿里云 Elasticsearch 实例默认已安装且不可卸载。详情请参见 elasticsearch-repository-oss。

  • 快照仅保存索引数据,不保存监控数据(.monitoring、.security_audit 等前缀索引)、元数据、Translog、实例配置、软件包、插件和日志。

  • 系统为每个实例默认创建一条托管策略「自动备份」,固定使用 ES 托管仓库 aliyun_auto_snapshot、按当地时区每天执行一次、保留最近 7 天,且默认排除 .* -.monitoring* -.security_audit* -.transform-internal* 等系统与监控索引。托管策略的仓库与保留时间不可修改。

  • 自动备份的索引元数据大小不能超过 100MB,超出此限制可能导致备份任务无法执行。

  • 首次快照或触发全量备份时,系统需要进行全量数据拷贝,会占用集群 CPU、IO 等资源,可能影响业务性能。建议将备份时间设置在业务低峰期(如凌晨)。

  • 删除或暂停备份策略不会删除已生成的快照,已有快照仍按各自的保留规则到期清理。手动创建的快照默认不自动删除(过期时间显示为「—」)。

  • 本文介绍如何在控制台完成备份与恢复。如需通过 Kibana 或 API 使用 _snapshot 命令手动管理快照仓库、创建与恢复快照,请参见手动备份与恢复。

进入数据备份页面

  1. 登录阿里云Elasticsearch控制台。

  2. 在左侧导航栏,单击Elasticsearch实例。

  3. 在顶部菜单栏,选择资源组和地域。

  4. 在Elasticsearch实例列表,单击目标实例 ID,进入实例详情页。

  5. 在左侧导航栏,选择 配置与管理 > 数据备份。

数据备份页面包含以下三个页签:

页签

说明

备份记录

查看自动与手动备份生成的快照,可按状态、仓库筛选;支持查看备份详情、从快照恢复数据、删除快照。

自动备份策略

管理备份策略,包括系统托管策略「自动备份」和您创建的自定义策略;支持创建、编辑、暂停、删除策略以及立即执行一次备份。

备份仓库

管理快照的存储位置,包括 ES 托管仓库、您自己的自定义 OSS 仓库和跨实例引用仓库;支持创建、校验、查看详情。

说明

部分实例的数据备份页面底部仍保留旧版「跨集群OSS仓库设置」区域。跨集群备份与恢复的操作说明,请参见通过跨集群OSS仓库备份与恢复数据。

配置自动备份策略

系统为每个实例默认创建一条托管策略「自动备份」,按当地时区每天 03:30 执行一次,将全部业务索引备份到 ES 托管仓库 aliyun_auto_snapshot,保留最近 7 天。如果默认的托管策略无法满足需求,您可以创建自定义策略,灵活设置备份的时间点、周期、索引范围、保存路径(备份仓库)和保留时间。每个实例最多可创建 3 条备份策略。

修改托管策略

  1. 按照进入数据备份页面的步骤进入数据备份页面。

  2. 单击自动备份策略页签,在「自动备份」策略所在行,单击编辑。

  3. 在编辑面板,修改备份周期与开始时间,然后单击保存修改。

    说明

    托管策略的备份周期仅支持每 30 分钟、每天或每周;备份仓库固定为 ES 托管仓库、保留时间固定为 7 天,均不可修改。修改保存后仅对新生成的备份生效。

创建自定义策略

  1. 在自动备份策略页签,单击创建备份策略。

  2. 在创建备份策略面板,配置以下参数。

    参数

    说明

    策略名称

    策略的显示名称。请输入 2~64 个字符,以中文、字母或数字开头。

    快照名称前缀

    生成快照时使用的名称前缀,系统会自动追加执行时间和唯一标识以避免重名。请输入 3~40 位小写字母、数字、下划线或短横线,以字母开头。

    备份周期

    快照的生成周期,支持每天、每周和固定间隔。固定间隔支持 30~59 分钟、1~23 小时或 1~31 天。

    每天、每周策略按 UTC 时区执行,请按 UTC 时间填写开始时间。

    开始时间

    快照开始生成的时间点。建议选择业务低峰期;任务排队可能导致实际开始时间延后。

    备份索引

    需要备份的索引范围,可选全部索引或指定索引。选择指定索引时,支持关键词模糊搜索,多个索引以逗号分隔;支持通配符 *(匹配任意长度)和 ?(匹配单个字符),输入通配符后选择「使用规则」添加,规则会自动包含后续新增的匹配索引。系统、监控和审计索引不在备份范围内。

    备份仓库

    快照的保存位置。仅可选择当前实例已注册、校验通过的同地域可写 OSS 仓库。如需保存到自己的 OSS,请先参见创建自定义 OSS 仓库创建仓库。

    保留时间

    快照的保留天数,从备份完成时起计算,到期自动清理。修改仅对新备份生效,已有快照的过期时间保持不变。

    创建后启用

    开启后策略按计划自动执行;关闭则保存为暂停状态,不会自动创建备份。

  3. 单击创建备份策略。

立即备份、暂停与删除策略

  • 立即备份:在目标策略所在行,单击立即备份,可使用该策略的当前配置立即创建一次备份。本次执行不会改变原有的调度时间。

  • 暂停或删除:在目标策略所在行的操作列,可暂停或删除策略。暂停或删除策略不会删除已生成的快照,已有快照仍按各自的保留规则处理。

    说明

    若删除或暂停的是实例最后一条启用的策略,实例将失去自动备份保护,请谨慎操作。

手动备份

除自动备份策略外,您还可以随时手动创建一次快照,并自行指定快照的保存位置(备份仓库)与索引范围。手动创建的快照默认不自动删除(备份记录中的过期时间显示为「—」),适合在执行重要变更前留存数据。

  1. 按照进入数据备份页面的步骤进入数据备份页面,在备份记录页签,单击手动备份。

  2. 在手动备份面板,配置以下参数,然后按提示确认提交。

    参数

    说明

    快照名称

    快照名称。请输入 3~40 位小写字母、数字、下划线或短横线,必须以字母开头。

    备份索引

    需要备份的索引范围,可选全部索引或指定索引(多个索引以逗号分隔,支持通配符)。

    备份仓库

    快照的保存位置,可选 ES 托管仓库或已创建的自定义 OSS 仓库。如需保存到自己的 OSS Bucket,请先参见创建自定义 OSS 仓库。

  3. 任务提交后,可在备份记录页签查看执行进度与结果。

说明

首次使用自定义 OSS 仓库备份时,需要先开启自定义仓库自动授权(详见下文)。开启授权需要重启实例才能生效,建议在业务低峰期操作。

备份仓库

备份仓库决定快照数据的保存位置。仓库分为以下三种类型:

仓库类型

说明

ES 托管仓库

由系统创建并管理(aliyun_auto_snapshot),无需配置,不支持改名、停用或删除。

自定义 OSS 仓库

将快照保存到您自己的 OSS Bucket,可自定义保存路径与访问模式(读写/只读)。

跨实例引用仓库

以只读方式引用同账号、同地域其他实例的仓库,仅用于读取备份与恢复数据,不允许写入或删除源快照。

开启自定义仓库自动授权

创建自定义 OSS 仓库前,需先开启自定义仓库自动授权。开启后,系统会为您账号下发服务关联角色 AliyunServiceRoleForElasticsearchOSS,Elasticsearch 通过该角色访问您账号下名称前缀为 es-alicloud- 或已打 es-alicloud 标签的 OSS Bucket,无需填写 AccessKey。

  1. 在备份仓库页签,单击自定义仓库自动授权,然后单击开启授权。

  2. 等待实例重启并生效。开启授权需要重启实例,通常需要几分钟,实例状态会自动刷新,您也可以单击刷新状态手动刷新。生效后,此前填写的仓库信息会保留,可直接继续创建仓库。

    说明

    为减少变更影响,建议在业务低峰期开启授权。

创建自定义 OSS 仓库

开始前,请确保:已开启自定义仓库自动授权;已在与实例相同的地域创建好 OSS Bucket(Bucket 名称须为 es-alicloud- 前缀,或已为 Bucket 打上 es-alicloud 标签);已在该 Bucket 下创建好用于存放快照的存储路径(目录)。创建仓库不会新建 Bucket,存储路径也必须已存在。

  1. 在备份仓库页签,单击创建备份仓库。

  2. 在创建备份仓库面板,配置以下参数。

    参数

    说明

    仓库类型

    选择自定义 OSS。如需引用其他实例的仓库,选择跨实例引用。

    仓库名称

    仓库注册名(ES 标识),创建后不支持修改。请输入 2~64 位小写字母、数字、下划线或短横线,以字母开头,例如 business_backup。

    仓库地域

    仓库必须与当前实例位于同一地域。

    访问模式

    读写仓库可创建和删除快照;只读仓库仅用于查看和恢复已有快照。

    OSS Bucket

    选择已存在的同地域 Bucket,Bucket 名称须为 es-alicloud- 前缀格式,或已为该 Bucket 打上 es-alicloud 标签。创建仓库不会新建 Bucket,可单击OSS控制台前往创建。

    存储路径

    快照在 Bucket 内的保存路径(文件保存路径)。建议为仓库使用独立目录,且不能与已注册仓库的路径相同或重叠,例如 snapshots。

  3. 单击校验并创建。系统会校验仓库地域、读写权限与来源仓库,校验通过后仓库创建成功。

仓库创建成功后,您可以在创建备份策略或手动备份时选择该仓库;也可以在备份仓库页签对仓库执行校验仓库或查看详情。注销仓库仅解除注册关系,不会删除 OSS Bucket、对象或历史备份记录。

查看备份记录与详情

在备份记录页签,可查看全部自动与手动备份生成的快照,表格列包括快照名称、备份仓库、状态、开始时间、过期时间与操作。支持按状态、仓库筛选,或按快照名称、策略名称搜索。

  • 单击目标快照的详情,可查看备份类型(自动/手动)、来源策略、备份仓库、来源地域、备份索引、快照逻辑大小、开始与完成时间、执行耗时及过期时间。

  • 快照状态包括进行中、成功、失败、已过期等。若快照长时间处于进行中,可在 Kibana 控制台执行 GET _snapshot/仓库名/_all 核实实际状态,详情请参见手动备份与恢复。

  • 单击删除可删除不再需要的快照。删除后数据无法找回,请谨慎操作;这是最后一份可恢复副本时,删除后将无法通过此快照恢复。

从快照恢复数据

当出现数据误删除、应用逻辑错误等情况时,您可以在控制台将备份快照恢复到当前实例或同地域的其他已有实例。恢复通过 3 步向导完成:配置恢复、执行预检查、确认并开始。

说明

恢复仅针对所选的业务索引,不恢复全局集群状态、系统索引或默认别名,也不会覆盖、关闭或删除目标实例的现有索引。恢复完成后请验证数据,再自行进行业务切流。

  1. 在备份记录页签,找到目标快照,在其操作列单击恢复。

  2. 在配置恢复步骤,配置恢复来源与目标。

    参数

    说明

    恢复来源副本

    选择用于恢复的备份快照。只能使用已完成且未过期的快照。

    目标实例类型

    选择当前实例或其他已有实例。选择其他已有实例时,仅展示当前账号有恢复权限的可用实例;本流程不会创建或购买新实例。

    目标实例

    选择接收恢复数据的实例。目标实例必须与来源副本位于同一地域。

    恢复索引

    选择全部可恢复索引或指定索引(支持逗号分隔和通配符)。索引来自所选快照;系统、监控和审计索引不在恢复范围内。

    重命名恢复

    选择保留原索引名或统一添加前缀。选择添加前缀时,在恢复索引名前缀中输入 1~40 位小写字母、数字、下划线或短横线(以字母或数字开头),系统只为恢复后的索引统一加前缀,不执行正则替换,可避免与目标实例的同名索引冲突。

    配置完成后,页面会展示「快照中的索引」到「恢复后的索引」的映射表,请核对无误后进入下一步。

  3. 在执行预检查步骤,等待预检查完成。系统会依次检查快照状态、ES 版本兼容性、权限与健康状态、目标可用容量、同名索引冲突、副本就绪状态、保留有效期、来源仓库可读性、目标实例与地域、恢复索引范围及目标索引命名。全部通过后进入下一步;若存在未通过项,请按提示调整后重新检查。

  4. 在确认并开始步骤,勾选确认项(我已核对来源、目标及索引映射,并知晓恢复任务可能影响目标实例性能),然后单击确认开始恢复。

  5. 恢复开始后,可在快照的备份详情中查看恢复进度。恢复完成后,请自行验证恢复出的索引数据。

如需恢复到其他实例,也可以将快照保存在自定义 OSS 仓库后,在目标实例通过跨实例引用仓库读取并恢复;或使用跨集群 OSS 仓库方式,详情请参见通过跨集群OSS仓库备份与恢复数据。

通过 API 管理快照

控制台的数据备份功能底层基于 Elasticsearch 的 _snapshot API 实现。如果您需要通过 Kibana 控制台或 API 手动创建快照仓库、创建快照、查看快照状态或从快照恢复数据(包括使用重命名规则恢复、跨集群恢复等高级用法),请参见手动备份与恢复。以下是几个常用命令示例:

  • 查看快照仓库。

    GET _snapshot
  • 查看指定仓库中的所有快照。将 <repository> 替换为仓库名,例如托管仓库 aliyun_auto_snapshot。

    GET _snapshot/<repository>/_all
  • 查看指定快照的详细状态。

    GET _snapshot/<repository>/<snapshot>/_status
说明

通过 API 查看时,返回结果中的时间为 UTC 时间。北京时间 = UTC 时间 + 8 小时。快照状态字段 state 的取值包括 IN_PROGRESS(正在执行)、SUCCESS(全部成功)、FAILED(执行失败)、PARTIAL(部分分片失败)和 INCOMPATIBLE(版本不兼容)。

配置监控报警

建议为实例配置集群监控报警,监控快照的备份状态。若监控页面中,快照状态(value)指标为 2,表示快照任务失败。备份策略也支持开启失败通知:备份失败事件会上传到事件中心,您可以订阅事件接收通知。若无最新快照生成,表示任务未触发;集群异常、节点异常等情况下,系统可能不会执行自动备份。

常见问题

为什么自动备份失败或增量快照耗时过长?

自动备份将快照数据写入 OSS 时,可能触发 OSS 的 QPS 限制(报错信息包含 QpsLimitExceeded),导致备份任务失败或增量快照的备份耗时与全量快照相当。该问题在业务高峰期(如每日 0:00~2:00)更容易出现。

解决方法:

  • 调整自动备份时间,避开业务高峰期。推荐设置为凌晨 3:00~4:00。

  • 如备份已失败,可等待下一个备份周期,系统将自动重试。

说明

该问题通常不影响 Elasticsearch 集群的正常业务运行。

备份任务长时间处于进行中(IN_PROGRESS)或后续备份失效怎么办?

Elasticsearch 同一时间、同一仓库仅允许执行一个快照任务。若前一次快照因集群瞬时波动在启动阶段“假死”(状态显示进行中,但实际未写入数据),为避免数据冲突,后续触发的自动备份会被静默跳过,导致备份连续失效。

解决方法:

  • 登录 Kibana 控制台(具体操作请参见通过 Kibana 登录可视化控制台),执行以下命令查看卡住的快照名称:

    GET _snapshot/aliyun_auto_snapshot/_all

    返回结果中 state 为 IN_PROGRESS 且长时间未结束的快照即为卡住的快照。

  • 执行以下命令删除该卡住的快照:

    DELETE _snapshot/aliyun_auto_snapshot/<snapshot>

    <snapshot>:需要删除的快照名称,即上一步中查看到的长时间处于 IN_PROGRESS 状态的快照。若使用自定义备份仓库,请将命令中的 aliyun_auto_snapshot 替换为您的仓库名称。

    说明

    Elasticsearch 未提供取消快照任务的独立接口。删除处于进行中状态的快照时,系统会中止该快照任务并清理已生成的快照文件,本次备份不会保留,需要重新执行备份。该操作不会影响集群的正常读写。

监控建议:配置自定义监控报警规则,检测状态为 IN_PROGRESS 且持续时间超过 1 小时的异常快照任务,以便及时发现并处理。

手动备份的快照会被自动删除吗?

不会。手动创建的快照默认不设置自动清理规则,在备份记录中其过期时间显示为「—」,需由您手动删除。而由自动备份策略生成的快照,会按策略设置的保留时间到期自动清理。

实例升级或配置变更后自动备份停止且无新快照生成怎么办?

通常是由于配置了关联实例自身的跨集群仓库,导致快照无法写入。

解决方法:

  • 删除错误的跨集群配置以及现有的自动快照仓库(aliyun_auto_snapshot)。

  • 在自动备份策略页签,暂停后重新启用托管策略「自动备份」。系统将在下一个定时备份时间点自动创建新的快照仓库并恢复正常备份。