一、備份工具安裝(也可以通過npm直接安裝使用)
ES備份工具下載地址:https://github.com/taskrabbit/elasticsearch-dump
npm安裝過程:
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash yum -y install nodejs #如果上述yum命令執行有誤,清空一下yum倉庫 yum clean all
#創建一個備份命令目錄,或直接在ES安裝目錄安裝
mkdir esdump && cd esdump
npm install elasticdump
#安裝完成后即可使用(以下是我新建目錄的命令位置)
/usr/local/esdump/node_modules/elasticdump/bin/elasticdump
二、elasticdump命令使用
直接遷移會導致遷移后分片數量為主1,副1。
推薦在遷移前,在新集群中建立索引分片,然后進行數據遷移。
參數介紹:
--input 數據源地址,地址后加入索引名
--output 目標地址,地址后加入原有索引名或新索引名
--type data為數據拷貝
mapping拷貝映射(意思是把原始索引的mapping
結構遷移給目標索引)
analyzer拷貝analyzer分詞
--limit 限制每次移動多少個文件(默認是100)
2.1 備份
./elasticdump --input=http://192.168.1.2:9200/test --output=/opt/esdump/test.json
2.2 還原
./elasticdump --input=/opt/esdump/test.json --output=http:/192.168.1.3:9200/test --type=data
2.3 數據遷移
./elasticdump --input=http:/192.168.1.2:9200/test --output=http:/192.168.1.3:9200/test --type=data
2.4 備份並壓縮
./elasticdump --input=http://192.168.1.2:9200/test --output=$ | gzip > /opt/esdump/test.json.gz