1. 程式人生 > >elasticsearch索引備份恢復、跨叢集遷移

elasticsearch索引備份恢復、跨叢集遷移

參考連結:

https://www.elastic.co/guide/en/elasticsearch/guide/current/backing-up-your-cluster.html#

坑或者是注意事項

indices屬於某種node.box_type,恢復索引的目標機群需要有這種type的節點,不然會恢復不了。

indices需要open。

步驟:

1、建立共享檔案目錄,所有es節點都能讀寫訪問,可以通過nfs的方式。

/etc/exports檔案

/data0/elasticsearch-backup *(rw)

(在這裡假設目錄為/data0/elasticsearch-backup)

2、所有節點修改配置elasticsearch.yml,然後重啟節點:

path.repo: /data0/elasticsearch-backup

3、建立snapshot共享倉庫

max_snapshot_bytes_per_sec、max_restore_bytes_per_sec預設20mb。

curl -XPUT localhost:9200/_snapshot/backup_test  -d '
{
    "type": "fs", 
    "settings": {
        "location": "/data/disk/nvme0n1p1/backup",

        "max_snapshot_bytes_per_sec" : "50mb", 
        "max_restore_bytes_per_sec" : "50mb",
        "compress": true
    }
}'

4、備份索引資料

快照備份整個機群資料(同一機群注意快照名唯一,snapshot_1)

curl localhost:9200 /_snapshot/backup_test/snapshot_1?wait_for_completion=true

只快照備份某些索引

curl -XPUT localhost:9200/_snapshot/backup_test/snapshot_1?wait_for_completion=true -d '
{
    "indices": "index1,index2,index3"
}'

5、檢視備份狀態

curl localhost:9200/_snapshot/backup_test/snapshot_1/_status?pretty

6、恢復快照資料,如果目標叢集已經存在同名索引,需要先close索引

恢復某個快照所有資料

curl -XPOST  localhost:9200/_snapshot/backup_test/snapshot_1/_restore?wait_for_completion=true

恢復某個快照部分索引資料

curl -XPOST  localhost:9200/_snapshot/backup_test/snapshot_1/_restore?wait_for_completion=true  -d '
{
    "indices": "index1,index2" 
}
'

7、輔助性操作

檢視快照狀態

curl localhost:9200/_snapshot/backup_test/snapshot_1/_status?pretty

檢視恢復狀態

curl localhost:9200/index1/_recovery?pretty

刪除快照

curl -XDELETE localhost:9200/_snapshot/backup_test/snapshot_1