全部產品
Search
文件中心

Elasticsearch:自動備份與恢複

更新時間:Jun 23, 2026

開啟阿里雲 Elasticsearch 的自動備份功能後,系統將按照設定的備份周期自動備份索引資料。當遇到資料誤刪除、應用邏輯錯誤等情況時,可以從自動備份中恢複資料。

注意事項

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

    快照僅儲存索引資料,不儲存監控資料(.monitoring.security_audit 首碼索引)、中繼資料、Translog、執行個體配置、軟體包、外掛程式和日誌。自動備份只保留最近 7 天的快照資料,且僅支援恢複到原叢集。如需跨叢集恢複,請參見手動備份與恢複自動備份快照到本地OSS倉庫
  • 自動備份的索引中繼資料大小不能超過 100MB,超出此限制可能導致自動備份任務無法執行,建議進行手動備份與恢複

  • 首次快照為全量拷貝,耗時較長,建議首次使用手動備份與恢複

  • 自動備份快照僅保留最近 7 天。超過 7 天后,系統將自動清理到期快照的底層儲存資料,且清理後資料無法恢複。如需長期保留備份資料,請在快照到期前通過手動備份與恢複手動匯出或遷移快照。

  • 開啟自動備份及建立快照倉庫本身不收費。自動備份的快照資料存放區在 OSS 中,會產生 OSS 儲存費用。具體費用資訊,請參見 OSS 計費說明。

開啟自動備份及監控警示

開啟自動備份

  1. 登入Elasticsearch控制台

  2. 在左側導覽列,單擊Elasticsearch執行個體

  3. 在頂部功能表列,選擇資源群組和地區。

  4. Elasticsearch執行個體列表單擊目標執行個體 ID,進入執行個體詳情頁。

  5. 在左側導覽列,單擊資料備份

  6. 資料備份(免費試用)地區,開啟自動備份開關。

  7. 單擊自動備份開始時間右側的設定

    核心增強版類型執行個體的自動備份時間由系統預設產生,不支援修改。
  8. 自動備份周期設定面板,選擇備份周期(自動備份觸發的時間)。

    備份周期

    說明

    每30分鐘

    每30分鐘進行一次自動備份。

    每天

    每天都會進行自動備份。可自訂備份時間。

    自訂

    自訂選擇備份的周期和時間。

    自動備份時間為當前執行個體所在地區的時間。
  9. 單擊確定

開啟監控警示

自動備份開啟後,建議同步配置叢集監控警示,監控快照的備份狀態。若監控頁面中,快照狀態(value)指標狀態為 2,表示快照任務失敗。

通過 /_cat/snapshots/aliyun_auto_snapshot?format=json 命令可查看最近一次快照的狀態詳情,並在需要時進行手動備份

快照狀態包含:

  • SUCCESS:所有分區備份成功。

  • PARTIAL:部分分區備份失敗。

  • FAILED:備份任務執行失敗。

若無最新快照,表示任務未觸發。叢集異常、節點異常等情況下,系統可能不會進行自動備份。

查看備份快照

開啟自動備份功能後,可以在 Kibana 控制台上通過 _snapshot API 查看自動備份快照資訊。詳情請參見通過Kibana串連叢集

  • 查看快照倉庫。

    GET _snapshot

    返回結果樣本:

    {
      "aliyun_auto_snapshot" : {
        "type" : "oss",
        "settings" : {
          "compress" : "true",
          "base_path" : "cf95b9-185320276651****/es-cn-09k2053us0003****",
          "endpoint" : "http://oss-cn-hangzhou-internal.aliyuncs.com"
        }
      }
    }

    參數

    說明

    aliyun_auto_snapshot

    自動快照倉庫名稱,首次快照時自動產生,固定為 aliyun_auto_snapshot。一個倉庫可以儲存多個快照,每個快照中可以包含所有、部分或單個索引的備份資料。

    type

    快照儲存介質。oss 表示使用Object Storage Service服務 OSS。

    compress

    是否壓縮快照的中繼資料檔案(索引映射和設定)。資料檔案不受此參數影響。true 表示開啟壓縮,false(預設值)表示不壓縮。

    base_path

    快照在 OSS 中的儲存位置。

    endpoint

    OSS 所處地區的資訊。

  • 查看 aliyun_auto_snapshot 倉庫中所有快照的資訊。

    GET _snapshot/aliyun_auto_snapshot/_all

    返回結果樣本:

    {
      "snapshots": [
        {
          "snapshot": "es-cn-09k2053us0003****_20210117030003",
          "uuid": "vIdSCkthTeGa0nSj4D****",
          "version_id": 5050399,
          "version": "5.5.3",
          "indices": [
            ".kibana"
          ],
          "state": "SUCCESS",
          "start_time": "2018-06-28T01:22:39.609Z",
          "start_time_in_millis": 1530148959609,
          "end_time": "2018-06-28T01:22:39.923Z",
          "end_time_in_millis": 1530148959923,
          "duration_in_millis": 314,
    
          "failures": [ ],
    
          "shards": {
            "total": 1,
            "failed": 0,
            "successful": 1
          }
        },
        {
          "snapshot": "es-cn-09k2053us0003****_20210118030004",
          "uuid": "XKO_Uwz_Qu6mZrU3Am****",
          "version_id": 5050399,
          "version": "5.5.3",
          "indices": [
            ".kibana"
          ],
          "state": "SUCCESS",
          "start_time": "2018-06-28T01:25:00.764Z",
          "start_time_in_millis": 1530149100764,
          "end_time": "2018-06-28T01:25:01.482Z",
          "end_time_in_millis": 1530149101482,
          "duration_in_millis": 718,
    
          "failures": [ ],
    
          "shards": {
            "total": 1,
            "failed": 0,
            "successful": 1
          }
        }
      ]
    }
    自動備份時間為當前地區的時間,而返回結果中的時間為 UTC 時間。北京時間 = UTC 時間 + 8 小時。

    state 欄位為快照狀態,共有以下 5 種:

    快照狀態

    說明

    IN_PROGRESS

    快照正在執行。

    SUCCESS

    快照執行結束,且所有 shard 中的資料都儲存成功。

    FAILED

    快照執行結束,但部分索引中的資料存放區不成功。

    PARTIAL

    部分資料存放區成功,但至少有 1 個 shard 中的資料沒有儲存成功。

    INCOMPATIBLE

    快照與阿里雲 Elasticsearch 執行個體的版本不相容。

    自動備份快照還有以下未顯示的預設參數:

    參數

    說明

    max_snapshot_bytes_per_sec

    單節點資料備份的最快速度,預設為每秒 40mb。

    max_restore_bytes_per_sec

    單節點資料恢複的最快速度,預設為每秒 40mb。

    chunk_size

    快照時,大檔案會被拆分成若干個小檔案。該參數用來設定拆分出的檔案大小,例如 1g、10m、5k。預設為 null,表示無限制。

  • 查看 aliyun_auto_snapshot 倉庫中指定快照的詳細資料。

    GET _snapshot/aliyun_auto_snapshot/<snapshot>/_status

    <snapshot>:自動備份快照名稱。可通過查看所有快照命令擷取,例如 es-cn-09k2053us0003****_20210118030004。

    返回結果樣本:

    {
      "snapshots": [
        {
          "snapshot": "es-cn-09k2053us0003****_20210118030004",
          "repository": "aliyun_auto_snapshot",
          "uuid": "XKO_Uwz_Qu6mZrU3Am****",
          "state": "SUCCESS",
          "shards_stats": {
            "initializing": 0,
            "started": 0,
            "finalizing": 0,
            "done": 1,
            "failed": 0,
            "total": 1
          },
          "stats": {
            "number_of_files": 4,
            "processed_files": 4,
            "total_size_in_bytes": 3296,
            "processed_size_in_bytes": 3296,
            "start_time_in_millis": 1530148959688,
            "time_in_millis": 77
          },
          "indices": {
            ".kibana": {
              "shards_stats": {
                "initializing": 0,
                "started": 0,
                "finalizing": 0,
                "done": 1,
                "failed": 0,
                "total": 1
              },
              "stats": {
                "number_of_files": 4,
                "processed_files": 4,
                "total_size_in_bytes": 3296,
                "processed_size_in_bytes": 3296,
                "start_time_in_millis": 1530148959688,
                "time_in_millis": 77
              },
              "shards": {
                "0": {
                  "stage": "DONE",
                  "stats": {
                    "number_of_files": 4,
                    "processed_files": 4,
                    "total_size_in_bytes": 3296,
                    "processed_size_in_bytes": 3296,
                    "start_time_in_millis": 1530148959688,
                    "time_in_millis": 77
                  }
                }
              }
            }
          }
        }
      ]
    }

從自動備份恢複資料

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

在 Kibana 控制台上,執行如下命令從快照中恢複索引資料:

  • 恢複指定快照的所有索引(後台執行)。

    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore

    <snapshot>:自動備份快照的名稱,例如 es-cn-abcdefghij****_20180627091600。

  • 恢複指定快照的所有索引,並等待任務處理完成。

    _restore API 為非同步呼叫,執行個體在確認可執行恢複操作後會立即返回。追加 wait_for_completion 參數可阻塞直到恢複完成:

    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore?wait_for_completion=true

    <snapshot>:自動備份快照名稱,例如 es-cn-abcdefghij****_20180627091600。

  • 恢複指定快照的指定索引,並為恢複的索引重新命名(後台執行)。

    POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore
    {
    "indices": "index_1",
    "rename_pattern": "index_(.+)",
    "rename_replacement": "restored_index_$1"
    }

    參數

    說明

    <snapshot>

    自動備份快照名稱,例如 es-cn-abcdefghij****_20180627091600。

    indices

    需要恢複的索引名稱。

    rename_pattern

    可選,正則匹配需要恢複的索引名稱。

    rename_replacement

    可選,為匹配上的索引按規則重新命名。

關閉自動備份

  1. 登入Elasticsearch控制台

  2. 在左側導覽列,單擊Elasticsearch執行個體

  3. 在頂部功能表列處,選擇資源群組和地區。

  4. Elasticsearch執行個體中單擊目標執行個體 ID。

  5. 在左側導覽列,單擊資料備份

  6. 資料備份(免費試用)地區,單擊開啟自動備份開關,關閉自動備份功能。

常見問題

為什麼自動備份失敗或增量快照耗時過長?

自動備份將快照資料寫入 OSS 時,可能觸發 OSS 的 QPS 限制(報錯資訊包含 QpsLimitExceeded),導致備份任務失敗或增量快照的備份耗時與全量快照相當。該問題在業務高峰期(如每日 0:00~2:00)更容易出現。

解決方案

  • 調整自動備份時間,避開業務高峰期。推薦設定為淩晨 3:00~4:00。

  • 如備份已失敗,可等待下一個備份周期,系統將自動重試。

說明

該問題通常不影響 Elasticsearch 叢集的正常業務運行。

如何在控制台查看自動備份快照?

對於 Elasticsearch 雲原生 PaaS 執行個體,控制台暫無直接查看自動備份快照的入口。可以通過以下方式查看自動備份快照:

  • 通過 Kibana 查看:登入 Kibana(具體操作請參見通過 Kibana 登入可視化控制台),進入 Management > Snapshot and Restore 頁面查看快照列表。

  • 通過 API 查看:在 Kibana 控制台的 Dev Tools 中或通過 API 執行以下命令查看所有自動備份快照:

    GET _snapshot/aliyun_auto_snapshot/_all