阿里云Elasticsearch(简称ES)提供了跨集群OSS仓库设置的功能,帮助您在不同ES集群间进行数据的恢复。

背景信息

跨集群OSS仓库设置功能可以实现,某个实例从已经进行了自动快照备份的实例仓库中恢复数据。

例如,您有两个6.7.0版本的ES实例,ID分别为es-cn-a和es-cn-b,其中es-cn-a已经开通了自动快照的功能,且已经进行过一次快照。如果您的实例es-cn-b想从实例es-cn-a的自动快照恢复数据,那么需要使用阿里云ES的跨集群OSS仓库设置来实现。

兼容性说明

  • 目前跨集群OSS仓库设置只支持同一个账号下同一个区域的ES实例间快照引用。
  • 支持高版本的实例引用低版本的仓库,不支持低版本实例引用高版本仓库。
    注意 当高版本引用低版本的仓库时,需要注意高版本对低版本数据格式可能存在不兼容的情况。例如,从5.5.3版本的实例恢复数据到6.7.0的实例,对于单类型的索引,5.5.3的实例支持数据恢复到6.7.0。对于多类型索引,因为5.5.3版本的ES是支持多类型索引,而6.7.0不支持多类型索引,所以恢复可能会出现问题。此时需要根据您真实使用情况而定,恢复前需自行进行测试。

OSS仓库设置

  1. 进入阿里云Elasticsearch控制台,单击实例名称 > 数据备份
  2. 跨集群OSS仓库设置页面,单击立即添加
    立即添加OSS仓库
  3. 添加引用仓库页面,选择实例。
    添加引用仓库页面
    注意 所选实例需要与当前实例兼容,详情请参见兼容性说明
  4. 单击确认
    添加成功后,被引用的实例显示在当前页面,并显示引用仓库的状态。添加引用仓库成功状态
    注意
    • 引用仓库会有两种状态,即生效失效生效状态表示该仓库可以正常引用,失效状态表示您引用的实例不存在或着仓库不存在。
    • 由于仓库列表是通过访问您的实例获取到的,因此当您的实例在变更中、不健康或者负载特别高时,可能无法获取仓库列表。此时,您可以通过在Kibana控制台中,执行ES的原生命令GET _snapshot,获取所有的仓库地址。

恢复索引

跨集群OSS仓库设置只是帮您打通了实例间仓库的引用,并不会帮助您进行数据的恢复。您可以按需在Kibana控制台上执行对应命令,恢复需要的索引数据。

例如,您想从实例es-cn-a恢复file-2019-08-25索引,需要执行以下命令。

  1. 获取您最近的或者想恢复的快照版本。
    GET /_cat/snapshots/aliyun_auto_snapshot_from_a?v
    该请求会返回该仓库下所存储的所有快照信息。返回该仓库下所存储的所有快照信息
  2. 根据您获取的快照版本恢复对应索引。
    注意 请确保快照索引在恢复节点中处于close状态,或者没有该索引。如果在执行恢复之前,恢复节点已有相同名称的索引,并且处于open状态,使用索引恢复时会报错。
    POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore 
     {"indices": "file-2019-08-25"}
    POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore
     {"indices": "kibana_sample_data_ecommerce,kibana_sample_data_logs"}