本文档为您介绍阿里云Elasticsearch(简称ES)实例的自动备份与自动备份恢复功能的使用方法。通过自动备份功能,您可以设置自动备份的时间,保证数据的安全性。

开启自动备份功能

  1. 进入阿里云ES的实例管理页面
  2. 单击左侧导航栏的数据备份
  3. 数据备份页面,打开开启自动备份开关,开启自动备份功能。ES数据备份页面
  4. 单击页面右侧的修改配置,选择每日自动备份触发的时间,单击保存即可定时触发ES自动备份。 选择自动备份触发的时间

从自动备份恢复数据

如果您对指定阿里云ES实例开启了自动备份功能,系统每天会自动为该Elasticsearch实例备份数据。您可以通过ES的snapshot API恢复数据到原阿里云Elasticsearch实例中。

说明
  • 您的第一个快照(即备份)是阿里云ES实例数据的完整拷贝,但后续所有的快照保留的是已存快照数据和新数据之间的增量,这意味着首次快照会耗时较长,后续快照会比较快。
  • 快照不保存阿里云Elasticsearch实例自身的监控数据(例如以.monitoring.security_audit为前缀的索引)。
  • 快照只能用于恢复到原阿里云Elasticsearch实例。
  • 自动快照仓库会在首次做快照时生成。

查看所有仓库

登录Kibana控制台,使用GET _snapshot命令查看所有仓库信息。

返回内容如下:
{
  "aliyun_auto_snapshot": {
    "type": "oss",
    "settings": {
      "compress": "true",
      "base_path": "xxxx",
      "endpoint": "xxxx"
    }
  }
}
  • aliyun_auto_snapshot:仓库名称。
  • type:快照存储介质,阿里云OSS。
  • compress:true:采用压缩模式,进行快照时会对索引的metadata信息进行压缩。
  • base_path:快照在OSS中的存储位置。
  • endpoint:OSS所处区域的信息。

查看全部快照

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

返回内容如下:
{
  "snapshots": [ 
    {
      "snapshot": "es-cn-abcdefghijklmn_20180627091600",
      "uuid": "MMRniVLPRAiawSCm8D8Dug",
      "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
      }
    }
  ]
}

默认参数

自动快照还有以下未显示的默认参数:
  • max_snapshot_bytes_per_sec:40mb:单节点最大备份数据速度为40mb/秒。
  • max_restore_bytes_per_sec:40mb:单节点最大恢复数据速度为40mb/秒。
  • chunk_size: Max 1Gb:做快照过程中大文件会被拆分成若干个小文件,拆分出的文件最大为1GB。

从快照恢复索引数据

您可以通过ES的_restore命令从快照中恢复索引数据。
  • 恢复aliyun_auto_snapshot仓库中指定快照的所有索引(后台执行):
    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore

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

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

    <snapshot>:替换为自动备份快照名称,例如es-cn-abcdefghijklmn_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:(可选)为匹配上的索引按规则重命名。