通过自动备份功能,您可以设置数据备份的周期和时间点。设置后,系统将按照对应的周期和时间点自动备份数据,保证数据的安全性。数据备份后,您可以通过自动备份恢复功能,将数据快速恢复到原阿里云ES实例中。本文介绍阿里云Elasticsearch(简称ES)的自动备份与自动备份恢复功能。

前提条件

已经创建了阿里云ES实例,详情请参见创建阿里云Elasticsearch实例

开启自动备份功能

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

从自动备份恢复数据

如果开启了阿里云ES实例的自动备份功能,那么系统会按照您设置的备份周期,自动备份该实例的数据。数据备份后,可以通过snapshot API恢复数据到原阿里云ES实例中。
说明
  • 您的第一个快照是阿里云ES实例的数据的完整拷贝,但后续所有的快照保留的是已存快照数据和新数据之间的增量,这意味着首次快照会耗时较长,后续快照会比较快。
  • 快照仅保存索引数据,不保存阿里云ES实例自身的监控数据(例如以.monitoring.security_audit为前缀的索引)、元数据、Translog、配置、阿里云ES的软件包、自带和自定义的插件、阿里云ES日志以及JVM日志等。
  • 系统只支持将快照数据恢复到原阿里云ES实例。
  • 自动快照仓库会在首次进行快照时生成。
  • 恢复.开头的系统索引可能会导致Kibana访问失败,建议不要恢复系统索引数据。
  1. 登录阿里云ES实例的Kibana控制台。
    登录控制台的具体步骤请参见登录Kibana控制台
  2. 在左侧导航栏,单击Dev Tools(开发工具),在Console中执行以下命令对快照进行操作。
    • 查看所有快照仓库

      执行GET _snapshot命令,查看所有快照仓库信息。

      执行成功后,返回如下结果。
      {
        "aliyun_auto_snapshot": {
          "type": "oss",
          "settings": {
            "compress": "true",
            "base_path": "xxxx",
            "endpoint": "xxxx"
          }
        }
      }
      参数 说明
      aliyun_auto_snapshot 仓库名称。
      type 快照存储介质。oss表示快照存储介质为阿里云对象存储服务OSS(Object Storage Service)。
      compress 是否采用压缩模式。设置为true表示进行快照时会对索引的元数据信息进行压缩。
      base_path 快照在OSS中的存储位置。
      endpoint OSS所处区域的信息。
    • 查看全部快照

      通过GET _snapshot/aliyun_auto_snapshot/_all命令查看aliyun_auto_snapshot仓库内所有快照信息。

      执行成功后,返回如下结果。
      {
        "snapshots": [ 
          {
            "snapshot": "es-cn-abcdefghij****_20180627091600",
            "uuid": "MMRniVLPRAiawSCm8D****",
            "version_id": 5050399,
            "version": "5.5.3",
            "indices": [
              "index_1",
              ".security",
              ".kibana"
            ],
            "state": "SUCCESS",
            "start_time": "2018-06-27T01:16:01.009Z",
            "start_time_in_millis": 1530062161009,
            "end_time": "2018-06-27T01:16:05.632Z",
            "end_time_in_millis": 1530062165632,
            "duration_in_millis": 4623,
            "failures": [],
            "shards": {
              "total": 12,
              "failed": 0,
              "successful": 12
            }
          }
        ]
      }
      注意 自动备份时间为当前区域的时间,而以上返回结果中的时间为UTC时间(世界标准时间),会存在时区差。可根据时区差进行转换,例如北京时间的时区差为8个小时,则北京时间=UTC时间+0080。
      自动快照还有以下未显示的默认参数。
      参数 说明
      max_snapshot_bytes_per_sec:40mb 单节点最大备份数据速度为40MB/秒。
      max_restore_bytes_per_sec:40mb 单节点最大恢复数据速度为40MB/秒。
      chunk_size: Max 1Gb 进行快照时,大文件会被拆分成若干个小文件,拆分出的文件最大为1GB。
    • 从快照恢复索引数据
      通过_restore API,从快照中恢复索引数据。
      • 恢复aliyun_auto_snapshot仓库中指定快照的所有索引(后台执行)。
        POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore

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

      • 恢复aliyun_auto_snapshot仓库中指定快照的所有索引,并等待任务处理完成。
        _restore为异步命令,阿里云ES实例在确认可执行恢复操作后会立即返回,该恢复任务会在后台执行,可以通过追加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-abcdefghijklmn_20180627091600
        indices 需要恢复的索引名称。
        rename_pattern 可选,正则匹配需要恢复索引的名称。
        rename_replacement 可选,为匹配上的索引按规则重命名。