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

前提条件

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

开启自动备份功能

  1. 登录阿里云Elasticsearch控制台
  2. 在顶部菜单栏处,选择资源组和地域。
  3. 在左侧导航栏,单击Elasticsearch实例,再在实例列表中单击目标实例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 可选,为匹配上的索引按规则重命名。