1. 程式人生 > 其它 >es異機恢復(不帶驗證)

es異機恢復(不帶驗證)

ES版本:6.5.0

前置條件:ES已經安裝部署好,並在執行狀態

1.將備份檔案解壓到新伺服器的備份目錄
備份目錄有es引數決定path.repo: /home/elasticsearch/esbak
[root@hxl elasticsearch]# cd /home/yeemiao/
[root@hxl elasticsearch]#tar -xvf esbak_20221212.tar.gz -C /home/elasticsearch/
該檔案大小70GB

輸出資訊
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__d
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__e
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__f


./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__g
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__h
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__i
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__j
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__k
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__l
./esbak/indices/tAHN9QicR2KVm1h0lCq3iw/1/__m
.
.
.

我這裡tar打包是包含esbak目錄的,所以解壓的時候直接指定/home/elasticsearch/即可

2.修改目錄許可權
[root@hxl yeemiao]# cd /home/elasticsearch/
[root@hxl elasticsearch]# chown -R elasticsearch:elasticsearch ./esbak


3.恢復
檢視當前的es是沒有資料的
[root@hxl elasticsearch]# su - elasticsearch
[elasticsearch@hxl ~]$ curl -X GET 'http://192.168.1.100:19200/_cat/indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size

建立備份指定目錄
curl -H "Content-Type: application/json" -XPUT http://192.168.1.100:19200/_snapshot/esbackup -d'{
"type": "fs",
"settings": {
"location": "/home/elasticsearch/esbak"
}
}'

檢視備份資訊,這個時候備份資訊已經註冊進來了(機器記憶體太小,發現執行很久,作業系統差不多hang住了)

[elasticsearch@hxl ~]$ curl -X GET "http://192.168.1.100:19200/_snapshot/esbackup/_all?pretty"
{
  "snapshots" : [
    {
      "snapshot" : "snapshot_20221212",
      "uuid" : "mPLiQ-3rSpOLPy3c4TS8kQ",
      "version_id" : 6050099,
      "version" : "6.5.0",
      "indices" : [
        "child_inocexamine_student",
        "reservation_new",
        "child_inocexamine_vacc",
        "orc_hospital_content",
        "inoculate_new",
        "vacc_update"
      ],
      "include_global_state" : true,
      "state" : "SUCCESS",
      "start_time" : "2022-12-11T17:10:02.285Z",
      "start_time_in_millis" : 1670778602285,
      "end_time" : "2022-12-11T18:02:07.053Z",
      "end_time_in_millis" : 1670781727053,
      "duration_in_millis" : 3124768,
      "failures" : [ ],
      "shards" : {
        "total" : 30,
        "failed" : 0,
        "successful" : 30
      }
    }
  ]
}

執行恢復
curl -XPOST http://192.168.1.100:19200/_snapshot/esbackup/snapshot_20221212/_restore


檢視恢復進度(具體索引)
curl -X GET 'http://192.168.1.100:19200/child_inocexamine_student/_recovery?pretty'

4.驗證
[elasticsearch@localhost esbak]$ curl -X GET 'http://192.168.1.100:19200/_cat/indices?v'


5.記錄數
curl -H "Content-Type: application/json" -XGET 'http://192.168.1.100:19200/_cat/count/reservation_new?v&format=json&pretty'

 

說明:
1.恢復的機器上建議使用大一些記憶體的機器,否則記憶體不夠會把es程序kill掉
more /var/log/messages

Dec 12 11:44:02 hxl kernel: Out of memory: Kill process 4650 (java) score 837 or sacrifice child

2.新增交換分割槽
[root@hxl ~]# free -m
total used free shared buff/cache available
Mem: 7821 7498 134 0 188 94
Swap: 9694 189 9505
記憶體不夠的情況下 使用交換分割槽

-- The End --