利用elasticsearch-dump实现es索引数据迁移附脚本

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

猜你喜欢

转载自blog.csdn.net/qq_39680564/article/details/83177266