需求
- elasticsearch版本均为6.3.2
- 不同的索引和数据录入到了相同版本的却不同的es中
- 不是整个data文件的拷贝,只是部分索引的迁移
使用工具elasticdump
安装
1、使用npm进行windows上的全局安装
npm install elasticdump -g
2、使用docker
docker pull taskrabbit/elasticsearch-dump
附docker的使用例子:
# Copy an index from production to staging with mappings:
docker run --rm -ti taskrabbit/elasticsearch-dump \
\
\
--type=mapping
docker run --rm -ti taskrabbit/elasticsearch-dump \
\
\
--type=data
# Backup index data to a file:
docker run --rm -ti -v /data:/tmp taskrabbit/elasticsearch-dump \
\
--output=/tmp/my_index_mapping.json \
--type=data
我没有使用docker的方式,是直接采用了直接在windows上全局安装
使用
elasticdump通过将输入发送到输出工作。两者都可以是Elasticsearch URL或文件。
Elasticsearch:
- format:
{protocol}://{host}:{port}/{index}
- example:
http://127.0.0.1:9200/my_index
File:
- format:
{FilePath}
- example:
/Users/evantahler/Desktop/dump.json
开始使用:
type为mapping是拷贝索引的构成
elasticdump \
--input=http://192.168.0.1:9200/my_index \
--output=http://192.168.0.2:9200/my_index \
--type=mapping
image.png
type为data是拷贝索引的数据,可以不用拷贝索引的构成直接拷贝数据
elasticdump \
\
\
--type=data
image.png
检查
image.png{
"index":{
"number_of_replicas":0
}
}
image.png
修改索引健康值
image.png