開啟阿里雲 Elasticsearch 的自動備份功能後,系統將按照設定的備份周期自動備份索引資料。當遇到資料誤刪除、應用邏輯錯誤等情況時,可以從自動備份中恢複資料。
注意事項
資料備份與恢複依賴 elasticsearch-repository-oss 外掛程式,阿里雲 Elasticsearch 執行個體預設已安裝且不可卸載。詳情請參見 elasticsearch-repository-oss。
快照僅儲存索引資料,不儲存監控資料(
.monitoring、.security_audit首碼索引)、中繼資料、Translog、執行個體配置、軟體包、外掛程式和日誌。自動備份只保留最近 7 天的快照資料,且僅支援恢複到原叢集。如需跨叢集恢複,請參見手動備份與恢複或自動備份快照到本地OSS倉庫。自動備份的索引中繼資料大小不能超過
100MB,超出此限制可能導致自動備份任務無法執行,建議進行手動備份與恢複。首次快照為全量拷貝,耗時較長,建議首次使用手動備份與恢複。
自動備份快照僅保留最近 7 天。超過 7 天后,系統將自動清理到期快照的底層儲存資料,且清理後資料無法恢複。如需長期保留備份資料,請在快照到期前通過手動備份與恢複手動匯出或遷移快照。
開啟自動備份及建立快照倉庫本身不收費。自動備份的快照資料存放區在 OSS 中,會產生 OSS 儲存費用。具體費用資訊,請參見 OSS 計費說明。
開啟自動備份及監控警示
開啟自動備份
在左側導覽列,單擊Elasticsearch執行個體。
在頂部功能表列,選擇資源群組和地區。
在Elasticsearch執行個體列表單擊目標執行個體 ID,進入執行個體詳情頁。
在左側導覽列,單擊資料備份。
在資料備份(免費試用)地區,開啟自動備份開關。
單擊自動備份開始時間右側的設定。
核心增強版類型執行個體的自動備份時間由系統預設產生,不支援修改。
在自動備份周期設定面板,選擇備份周期(自動備份觸發的時間)。
備份周期
說明
每30分鐘
每30分鐘進行一次自動備份。
每天
每天都會進行自動備份。可自訂備份時間。
自訂
自訂選擇備份的周期和時間。
自動備份時間為當前執行個體所在地區的時間。
單擊確定。
開啟監控警示
自動備份開啟後,建議同步配置叢集監控警示,監控快照的備份狀態。若監控頁面中,快照狀態(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
可選,為匹配上的索引按規則重新命名。
關閉自動備份
在左側導覽列,單擊Elasticsearch執行個體。
在頂部功能表列處,選擇資源群組和地區。
在Elasticsearch執行個體中單擊目標執行個體 ID。
在左側導覽列,單擊資料備份。
在資料備份(免費試用)地區,單擊開啟自動備份開關,關閉自動備份功能。
常見問題
為什麼自動備份失敗或增量快照耗時過長?
自動備份將快照資料寫入 OSS 時,可能觸發 OSS 的 QPS 限制(報錯資訊包含 QpsLimitExceeded),導致備份任務失敗或增量快照的備份耗時與全量快照相當。該問題在業務高峰期(如每日 0:00~2:00)更容易出現。
解決方案:
調整自動備份時間,避開業務高峰期。推薦設定為淩晨 3:00~4:00。
如備份已失敗,可等待下一個備份周期,系統將自動重試。
該問題通常不影響 Elasticsearch 叢集的正常業務運行。
如何在控制台查看自動備份快照?
對於 Elasticsearch 雲原生 PaaS 執行個體,控制台暫無直接查看自動備份快照的入口。可以通過以下方式查看自動備份快照:
通過 Kibana 查看:登入 Kibana(具體操作請參見通過 Kibana 登入可視化控制台),進入 頁面查看快照列表。
通過 API 查看:在 Kibana 控制台的 Dev Tools 中或通過 API 執行以下命令查看所有自動備份快照:
GET _snapshot/aliyun_auto_snapshot/_all