elasticsearch數據備份還原


elasticsearch數據備份還原



1.在瀏覽器中運行http://XXX.XXX.XXX.XXX:9200/_flush,確保索引數據能保存到硬盤中。


2.原數據的備份。主要是elasticsearch數據目錄下的nodes目錄的備份。nodes目錄為索引數據目錄。


3.將原集群中的每個elasticsearch節點下的data目錄拷貝至新的elasticsearch數據目錄下。

4 利用快照來備份還原。

下面是備份及還原的腳本,分別存成 esback.sh,esrestore.sh,並 chmod 777 esback.sh.給予執行權限

腳本如下:

-----自動備份elasticsearch數據並壓縮---
#!/bin/bash
filename=`date +%Y%m%d%H`
backesFile=es$filename.tar.gz
cd /home/elasticsearch/back
mkdir es_dump
cd es_dump
curl -XDELETE 192.168.1.7:9200/_snapshot/backup/$filename?pretty
echo 'sleep 30'
sleep 30
curl -XPUT 192.168.1.7:9200/_snapshot/backup/$filename?wait_for_completion=true&pretty
echo 'sleep 30'
sleep 30
cp /home/elasticsearch/snapshot/* /home/elasticsearch/back/es_dump -rf
cd ..
tar czf $backesFile  es_dump/
rm es_dump -rf 


-----自動解壓並還原elasticsearch數據---
#!/bin/bash
filename='XXXXXXX'
backesFile=es$filename.tar.gz
cd /home/elasticsearch/back
tar zxvf $backesFile
rm /home/elasticsearch/snapshot/* -rf
cp /home/elasticsearch/back/es_dump/* /home/elasticsearch/snapshot -rf


curl -XPOST 192.168.1.7:9200/users/_close
curl -XPOST 192.168.1.7:9200/products/_close
echo 'sleep 5'
sleep 5
curl -XPOST 192.168.1.7:9200/_snapshot/backup/$filename/_restore?pretty -d '{
"indices":"users"
}' 
echo 'sleep 5'
sleep 5
curl -XPOST 192.168.1.7:9200/_snapshot/backup/$filename/_restore?pretty -d '{
"indices":"products"
}'
echo 'sleep 5'
sleep 5
curl -XPOST 192.168.1.7:9200/users/_open
curl -XPOST 192.168.1.7:9200/products/_open 
rm es_dump -rf 

---end----

備份的腳本有幾個前提條件

1 先創建快照存儲庫

--創建快照存儲庫 backup--


curl -XPUT 192.168.1.7:9200/_snapshot/backup -d '
{
"type":"fs",
"settings":{"location":"/home/elasticsearch/snapshot"}
}'

且/home/elasticsearch/snapshot 該目錄要有權限

備份目錄  /home/elasticsearch/back要先建好

還原的時候是按索引來分別還原的,可改成需要的方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM