全部產品
Search
文件中心

Elasticsearch:設定跨叢集OSS倉庫

更新時間:Jun 30, 2024

通過設定跨叢集OSS倉庫,您可以將已進行了自動快照備份的源Elasticsearch執行個體倉庫中的資料,恢複到目標端Elasticsearch執行個體中。例如有兩個6.7.0版本的Elasticsearch執行個體,ID分別為es-cn-a和es-cn-b,其中es-cn-a已經開通了自動快照備份功能,且已經進行過一次快照。如果es-cn-b想從es-cn-a的自動快照恢複資料,那麼需要設定跨叢集OSS倉庫。

背景資訊

ES資料備份與恢複依賴於elasticsearch-repository-oss外掛程式,阿里雲ES執行個體預設已安裝該外掛程式且不可卸載。關於該外掛程式的詳細資料,請參見elasticsearch-repository-oss

前提條件

源端執行個體與目標端執行個體需要滿足以下條件:

  • 相同地區。

  • 歸屬於相同帳號。

  • 源端執行個體的版本低於或等於目標端執行個體的版本。

    如果源端和目標端執行個體的版本都是商業版6.7.0,請確保兩個執行個體的核心版本都是最新或者目標端的核心版本比源端高。

    重要
    • 跨叢集OSS倉庫設定功能只支援高版本的執行個體引用相同版本或低版本的倉庫,不支援低版本執行個體引用高版本倉庫。

    • 當高版本的執行個體引用低版本執行個體的倉庫時,需要注意高版本的執行個體對低版本執行個體的資料格式可能存在不相容的情況。例如,從5.5.3版本的執行個體恢複資料到6.7.0版本的執行個體,對於單類型的索引,5.5.3版本的執行個體支援恢複資料到6.7.0版本;對於多類型索引,由於5.5.3版本的執行個體只支援多類型索引,而6.7.0版本不支援多類型索引,所以恢複可能會出現問題。

添加OSS倉庫引用

  1. 登入Elasticsearch控制台
  2. 在左側導覽列,單擊Elasticsearch執行個體
  3. 進入目標執行個體。
    1. 在頂部功能表列處,選擇資源群組和地區。
    2. Elasticsearch執行個體中單擊目標執行個體ID。
  4. 在左側導覽列,單擊資料備份

  5. 跨叢集OSS倉庫設定地區,單擊立即建立

    說明

    如果不是首次添加倉庫引用,需要單擊建立OSS引用倉庫

  6. 建立OSS引用倉庫頁面,選擇源端執行個體。

    重要

    所選執行個體與當前執行個體需要滿足上文的前提條件。

  7. 單擊確認

    添加成功後,源端執行個體顯示在當前頁面,並顯示引用倉庫的狀態。添加引用倉庫成功狀態

    重要

    由於倉庫列表是通過訪問對應執行個體擷取到的,因此當執行個體在變更中、不健康或者負載特別高時,可能無法擷取倉庫情況。此時,您可以在源端執行個體的Kibana控制台中,執行GET _snapshot命令,擷取所有倉庫的地址。

  8. 恢複索引。

    跨叢集OSS倉庫設定功能只是實現了執行個體間倉庫的引用,並不會自動進行資料的恢複。您可以按照需求在目標端Elasticsearch執行個體的Kibana控制台上執行對應命令,恢複需要的索引資料。例如,從執行個體es-cn-a恢複file-2019-08-25索引,操作步驟如下:

    1. 登入目標端Elasticsearch執行個體的Kibana控制台。

      具體步驟,請參見登入Kibana控制台

      說明 本文以Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際介面為準。
    2. 在左側導覽列,單擊Dev Tools

    3. Console中,執行以下命令,查詢指定執行個體倉庫中的所有快照資訊。

      GET /_cat/snapshots/aliyun_snapshot_from_es-cn-a?v

      該請求會返回指定倉庫下所儲存的所有快照資訊。返回該倉庫下所儲存的所有快照資訊

      說明

      aliyun_snapshot_from_es-cn-a添加OSS倉庫引用中的引用倉庫名稱。

    4. 根據上一步擷取的快照id,執行以下命令恢複該快照下的指定索引。

      重要
      • 請確保指定索引在目標端Elasticsearch執行個體中處於關閉狀態,或者沒有該索引。如果在執行恢複索引命令之前,目標端Elasticsearch執行個體中已有相同名稱的索引,並且處於開啟狀態,那麼在執行恢複索引命令時會報錯。

      • 恢複.開頭的系統索引可能會導致Kibana訪問失敗,建議不要恢複系統索引。

      • 恢複單個索引

        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"}
      • 恢複所有索引(除過.開頭的系統索引)

        POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore 
        {"indices":"*,-.monitoring*,-.security*,-.kibana*","ignore_unavailable":"true"}