1、安装环境
CentOS Linux release 7.5.1804 (Core)
2、安装nodejs
yum install -y epel-release
yum install -y nodejs
3、验证nodejs
[root@localhost yum.repos.d]# node -v
v8.12.0
[root@localhost yum.repos.d]# npm -v
6.4.1
4、安装elasticsearch-dump
npm install elasticdump
5、验证安装
进入elasticdump/bin目录下
cd node_modules/elasticdump/bin/
执行
./elasticdump
出现
Fri, 19 Oct 2018 07:03:15 GMT | Error Emitted => {"errors":["`input` is a required input","`output` is a required input"]}
报错是因为没有输入参数
6、使用dump迁移索引
#拷贝索引
elasticdump
--input=http://production.es.com:9200/my_index
--output=http://staging.es.com:9200/my_index
--type=mapping
#拷贝数据
elasticdump
--input=http://production.es.com:9200/my_index
--output=http://staging.es.com:9200/my_index
--type=data
#拷贝所有索引
elasticdump
--input=http://production.es.com:9200/
--output=http://staging.es.com:9200/
--all=true
7、迁移实战
为了方便操作写了一个脚本,仅供参考。
#!/bin/bash
echo -n "源ES地址: "
read old
echo -n "目标ES地址: "
read new
echo -n "源索引名: "
read old_index
echo -n "目标索引名: "
read new_index
cd /root/node_modules/elasticdump/bin/
./elasticdump --input=$old/$old_index --output=$new/$new_index --type=mapping &>> /root/dump.log
./elasticdump --input=$old/$old_index --output=$new/$new_index --type=data &>> /root/dump.log
参考文档:https://blog.csdn.net/u010955999/article/details/80814656