阿里雲 Elasticsearch 支援兩種自動備份快照的方式:7.6 及以上版本通過快照生命週期管理 SLM(Snapshot Lifecycle Management)實現定時快照和自動到期清理;7.6 以下版本通過用戶端 crontab 定時任務觸發快照建立。兩種方式都將快照儲存至 OSS 倉庫。
背景資訊
關於快照生命週期SLM的詳細資料,請參見Snapshot Lifecycle Management。
Elasticsearch資料備份與恢複依賴於elasticsearch-repository-oss外掛程式,Elasticsearch執行個體預設已安裝該外掛程式且不可卸載。關於該外掛程式的詳細資料,請參見elasticsearch-repository-oss。
7.6及以上版本(推薦)
開始前,需要完成以下準備:
建立一個標準儲存類型的 OSS Bucket(不支援Archive Storage類型),Bucket 地區與 Elasticsearch 執行個體保持一致。具體操作參見建立儲存空間。
建立快照倉庫,將 OSS Bucket 關聯到 Elasticsearch 執行個體。具體操作參見建立快照倉庫。
在目標執行個體的 Kibana 控制台中,單擊Dev Tools,執行以下操作。
建立 SLM 策略。
PUT _slm/policy/auto-snapshots { "schedule": "0 0 0/12 * * ?", "name": "<auto-snap-{now/d}>", "repository": "my_auto_backup", "config": { "indices": "*", "include_global_state": true }, "retention": { "expire_after": "30d", "min_count": 5, "max_count": 50 } }參數
說明
schedule
Cron 運算式,格式為:秒 分鐘 小時 天 月 星期 年(可選)。
"0 0 0/12 * * ?"表示每 12 小時建立一次快照。詳細資料參見Cron。name
快照的名稱格式。支援日期數學運算式,如
<auto-snap-{now/d}>按日期命名。repository
快照倉庫名稱。擷取方式參見擷取倉庫資訊。
config.indices
快照包含的索引。
*表示所有索引。config.include_global_state
是否包含叢集狀態和 Feature 狀態。
true包含,false不包含。retention.expire_after
快照保留時間。樣本中為 30 天。
retention.min_count
最少保留快照數。即使超過保留時間,也會保留該數量的快照。
retention.max_count
最多保留快照數。即使未達到保留時間,超出該數量的快照也會被刪除。
執行 SLM 策略,立即建立一次快照。
POST _slm/policy/auto-snapshots/_execute執行完成後,Elasticsearch 會按 schedule 參數的設定自動建立快照。如需立即執行 retention 清理規則,運行以下命令:
POST _slm/_execute_retention
7.6以下版本
7.6 以下版本不支援 SLM,需要通過用戶端 crontab 定時任務實現自動快照。
開始前,需要完成以下準備:
建立一個標準儲存類型的 OSS Bucket(不支援Archive Storage類型),Bucket 地區與 Elasticsearch 執行個體保持一致。具體操作參見建立儲存空間。
建立快照倉庫。具體操作參見建立快照倉庫。
配置用戶端,確保能通過公網或內網訪問 Elasticsearch 執行個體。具體操作參見通過應用程式串連叢集。
在用戶端伺服器上執行以下操作:
建立快照備份指令碼。
vi /root/snapshot.sh在指令檔中添加以下內容並儲存。將
elastic:*****替換為實際的使用者名稱和密碼,將es-*****替換為實際的執行個體 ID。curl -u elastic:***** -X PUT https://es-*****.public.elasticsearch.aliyuncs.com:9200/_snapshot/my_auto_backup_crontab/snapshot_$(date +%s)為指令碼添加可執行許可權。
chmod +x /root/snapshot.sh配置 crontab 定時任務。以下樣本設定每天淩晨 2 點執行備份。
crontab -e添加以下行:
0 2 * * * /bin/bash /root/snapshot.sh儲存後 crontab 會自動載入新配置,無需手動重啟 cron 服務。
快照備份成功後,可以進行快照刪除、快照恢複、查看恢複資訊等操作,詳細資料參見手動備份與恢複。如需將快照恢複到其他叢集,需要在目的地組群中建立倉庫並映射到相同的 OSS 地址。