Elasticsearch數據備份說明
假設ES集群有三個節點:
192.168.1.10
192.168.1.11
192.168.1.12
1. 創建共享目錄
在三個節點上創建共享目錄/mnt/backup/,使三個節點的es用戶都可以讀寫該目錄。(推薦使用nfs創建共享目錄)
2. 修改ES配置
在elasticsearch.yml中加入一行:
path.repo: /mnt/backup/
修改後重啟es集群。
3. 創建備份倉庫
curl -XPUT http://192.168.1.10:9200/_snapshot/EsBackup_zip -d {
"type": "fs",
"settings": {
"location": "/mnt/backup/compress_snapshot",
"compress": true
}
}
成功後結果返回{"acknowledged":true}. 這時查看剛創建的倉庫:
curl -XGET http://192.168.1.10:9200/_snapshot?pretty
正常結果返回:
{
"EsBackup_zip" : {
"type" : "fs",
"settings" : {
"compress" : "true",
"location" : "/mnt/backup/compress_snapshot"
}
}
}
4. 備份指定索引數據
假設要備份單個索引, 索引名為: user_behavior_201702
curl -XPUT http://192.168.1.10:9200/_snapshot/EsBackup_zip/snapshot_user_behavior_201702 -d {"indices": "user_behavior_201702"}
提交備份快照請求後, 查看備份狀態:
curl -XGET http://192.168.1.12:9200/_snapshot/EsBackup_zip/snapshot_user_behavior_201702?pretty
假設要備份多個索引, 比如idx_1, idx_2, idx_3, 則可以:
curl -XPUT http://192.168.1.10:9200/_snapshot/EsBackup_zip/snapshot_some_name -d {"indices": "idx_1,idx_2,idx_3"}
假設要備份全部索引數據, 則可以:
curl -XPUT http://192.168.1.10:9200/_snapshot/EsBackup_zip/snapshot_all
5. 恢復備份索引
刪除已備份的索引:
curl -XDELETE "http://192.168.1.10:9200/user_behavior_201702"
恢復單個索引:
curl -XPOST http://192.168.1.10:9200/_snapshot/EsBackup_zip/snapshot_user_behavior_201702/_restore -d {
"indices": "user_behavior_201702",
"rename_replacement": "restored_ub_201702"
}
恢復整個快照索引:
curl -XPOST http://192.168.1.10:9200/_snapshot/EsBackup_zip/snapshot_some_name/_restore
提交請求成功後返回{"accepted":true}。
查看恢復狀態:
curl -XGET "http://192.168.1.10:9200/_snapshot/EsBackup_zip/snapshot_user_behavior_201702/_status"
推薦閱讀:
※災備行業最全常用術語 僅此一份
※對WannaCry勒索病毒的反思:我們為什麼不養成備份的習慣?
※使用mysqlbackup 備份
※【評論有獎】數據高可用備份教程開放,無效「全額退款」