通过阿里云Elasticsearch的自动备份功能,您可以设置数据备份的周期和时间。设置后,系统将按照设定的周期和时间自动备份数据,保证数据的安全性。备份完成后,您可以通过自动备份恢复功能,将数据恢复到原实例中。本文介绍如何使用自动备份功能、查看快照信息以及从自动备份恢复数据。

注意事项

  • 集群的第一个快照是集群数据的完整拷贝,后续所有的快照保留的是已存快照和新快照之间的增量,因此首次快照耗时较长(具体时长与数据量相关),后续快照备份会比较快。
  • 快照仅保存索引数据,不保存Elasticsearch实例自身的监控数据(例如以.monitoring.security_audit为前缀的索引)、元数据、Translog、实例配置数据、Elasticsearch的软件包、自带和自定义的插件、Elasticsearch的日志等。
  • 自动备份只保留最近7天的快照数据。
  • 自动备份数据只能用于恢复到原集群,如果需要跨集群恢复,请参见手动备份与恢复设置跨集群OSS仓库

开启自动备份

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. 在左侧导航栏单击Elasticsearch实例,然后在Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,单击数据备份
  5. 数据备份(免费试用)区域,开启自动备份开关。
  6. 在页面右侧,单击修改配置
    注意 为保证系统安全性,日志增强版类型实例的自动备份时间由系统默认生成,不支持修改。
  7. 自动备份周期设置面板,选择备份周期(自动备份触发的时间)。
    选择自动备份触发的时间
    备份周期 说明
    每30分钟 每30分钟进行一次自动备份。
    每天 每天都会进行自动备份。可自定义备份时间。
    自定义 自定义选择备份的周期和时间。
    注意 自动备份时间为当前实例所在区域的时间。
  8. 单击确定

查看备份快照

开启自动备份功能后,您可以登录Kibana控制台(登录Kibana控制台),在对应阿里云Elasticsearch实例的Kibana控制台上,通过_snapshot API查看自动备份快照的信息:

  • 查看快照仓库
    GET _snapshot
    执行成功后,返回如下结果。
    {
      "aliyun_auto_snapshot" : {
        "type" : "oss",
        "settings" : {
          "compress" : "true",
          "base_path" : "cf95b9-185320276651****/es-cn-09k2053us0003****",
          "endpoint" : "http://oss-cn-hangzhou-internal.aliyuncs.com"
        }
      }
    }
                                
    参数 说明
    aliyun_auto_snapshot 自动快照仓库在首次快照时生成。阿里云Elasticsearch自动备份快照存储的仓库名称固定为aliyun_auto_snapshot
    说明 一个仓库可以存储多个快照,每个快照中可以包含所有、部分或单个索引的备份数据。
    type 快照的存储介质。oss表示快照存储介质为对象存储服务OSS(Object Storage Service)。
    compress 打开快照文件的压缩功能。
    • true:打开压缩功能,仅应用于元数据文件(索引映射和设置)。
    • false(默认值):不打开压缩功能,数据文件未压缩。
    base_path 快照在OSS中的存储位置。
    endpoint OSS所处地域的信息。
  • 查看aliyun_auto_snapshot仓库中,所有快照的信息
    GET _snapshot/aliyun_auto_snapshot/_all
    执行成功后,返回如下结果。
    {
      "snapshots": [
        {
          "snapshot": "es-cn-09k2053us0003****_20210117030003",
          "uuid": "vIdSCkthTeGa0nSj4D****",
          "version_id": 5050399,
          "version": "5.5.3",
          "indices": [
            ".kibana"
          ],
          "state": "SUCCESS",
          "start_time": "2018-06-28T01:22:39.609Z",
          "start_time_in_millis": 1530148959609,
          "end_time": "2018-06-28T01:22:39.923Z",
          "end_time_in_millis": 1530148959923,
          "duration_in_millis": 314,
          "failures": [],
          "shards": {
            "total": 1,
            "failed": 0,
            "successful": 1
          }
        },
        {
          "snapshot": "es-cn-09k2053us0003****_20210118030004",
          "uuid": "XKO_Uwz_Qu6mZrU3Am****",
          "version_id": 5050399,
          "version": "5.5.3",
          "indices": [
            ".kibana"
          ],
          "state": "SUCCESS",
          "start_time": "2018-06-28T01:25:00.764Z",
          "start_time_in_millis": 1530149100764,
          "end_time": "2018-06-28T01:25:01.482Z",
          "end_time_in_millis": 1530149101482,
          "duration_in_millis": 718,
          "failures": [],
          "shards": {
            "total": 1,
            "failed": 0,
            "successful": 1
          }
        }
      ]
    }
    注意 自动备份时间为当前地域的时间,而以上返回结果中的时间为UTC时间(世界标准时间),会存在时区差。您可根据时区差进行转换,例如北京时间的时区差为8个小时,则北京时间=UTC时间+0080。
    其中state为快照状态,阿里云Elasticsearch实例的快照共有以下5种状态。
    快照状态 说明
    IN_PROGRESS 快照正在执行。
    SUCCESS 快照执行结束,且所有shard中的数据都存储成功。
    FAILED 快照执行结束,但部分索引中的数据存储不成功。
    PARTIAL 部分数据存储成功,但至少有1个shard中的数据没有存储成功。
    INCOMPATIBLE 快照与阿里云Elasticsearch实例的版本不兼容。
    自动备份快照还有以下未显示的默认参数。
    参数 说明
    max_snapshot_bytes_per_sec 单节点数据备份的最快速度,默认为每秒40mb
    max_restore_bytes_per_sec 单节点数据恢复的最快速度,默认为每秒40mb
    chunk_size 快照时,大文件会被拆分成若干个小文件。该参数用来设置拆分出的文件大小,例如1g10m5k。默认为null,表示无限制。
  • 查看aliyun_auto_snapshot仓库中,指定快照的详细信息
    GET _snapshot/aliyun_auto_snapshot/<snapshot>/_status

    <snapshot>:自动备份快照名称。可通过查看所有快照命令获取,例如es-cn-09k2053us0003****_20210118030004。

    执行成功后,返回如下结果。
    {
      "snapshots": [
        {
          "snapshot": "es-cn-09k2053us0003****_20210118030004",
          "repository": "aliyun_auto_snapshot",
          "uuid": "XKO_Uwz_Qu6mZrU3Am****",
          "state": "SUCCESS",
          "shards_stats": {
            "initializing": 0,
            "started": 0,
            "finalizing": 0,
            "done": 1,
            "failed": 0,
            "total": 1
          },
          "stats": {
            "number_of_files": 4,
            "processed_files": 4,
            "total_size_in_bytes": 3296,
            "processed_size_in_bytes": 3296,
            "start_time_in_millis": 1530148959688,
            "time_in_millis": 77
          },
          "indices": {
            ".kibana": {
              "shards_stats": {
                "initializing": 0,
                "started": 0,
                "finalizing": 0,
                "done": 1,
                "failed": 0,
                "total": 1
              },
              "stats": {
                "number_of_files": 4,
                "processed_files": 4,
                "total_size_in_bytes": 3296,
                "processed_size_in_bytes": 3296,
                "start_time_in_millis": 1530148959688,
                "time_in_millis": 77
              },
              "shards": {
                "0": {
                  "stage": "DONE",
                  "stats": {
                    "number_of_files": 4,
                    "processed_files": 4,
                    "total_size_in_bytes": 3296,
                    "processed_size_in_bytes": 3296,
                    "start_time_in_millis": 1530148959688,
                    "time_in_millis": 77
                  }
                }
              }
            }
          }
        }
      ]
    }

从自动备份恢复数据

自动备份完成后,您可以通过_restore API恢复数据到原Elasticsearch实例中。
说明 恢复.开头的系统索引可能会导致Kibana访问失败,建议不要恢复系统索引数据。
在Kibana控制台上,执行如下命令,从快照中恢复索引数据:
  • 恢复aliyun_auto_snapshot仓库中,指定快照的所有索引(后台执行)。
    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore

    <snapshot>:自动备份快照的名称,例如es-cn-abcdefghij****_20180627091600

  • 恢复aliyun_auto_snapshot仓库中,指定快照的所有索引,并等待任务处理完成。
    _restore API为异步调用,实例在确认可执行恢复操作后会立即返回,该恢复任务会在后台执行。您可以通过追加wait_for_completion参数,阻塞调用直到恢复完成再返回信息。
    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore?wait_for_completion=true

    <snapshot>:自动备份快照名称,例如es-cn-abcdefghij****_20180627091600

  • 恢复aliyun_auto_snapshot仓库中,指定快照的指定索引,并为恢复的索引重命名(后台执行)。
    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore
    {
    "indices": "index_1",
    "rename_pattern": "index_(.+)",
    "rename_replacement": "restored_index_$1"
    }
    参数 说明
    <snapshot> 自动备份快照名称,例如es-cn-abcdefghij****_20180627091600
    indices 需要恢复的索引名称。
    rename_pattern 可选,正则匹配需要恢复的索引名称。
    rename_replacement 可选,为匹配上的索引按规则重命名。