logstash
迁移方式
$vim es.conf
input {
elasticsearch {
hosts => ["数据源ip:9200"]
user => "elastic" //没有可以为空
password => "123456"
index => "index"
size => 10000
scroll => "1m"
}
}
output {
elasticsearch {
hosts => ["目标es ip:9200"]
document_id => "%{主键id或原字段}"
user => ""
password => ""
index => "vasbeat-2019.04"
}
}
$./bin/logstash -f config/es.conf --path.data=/data/es
优点
迁移速度快
缺点
- 部分index会有数据遗漏,原因未知
- 占用内存资源较多
es-dump
迁移方式
es-dump 安装方式参考http://mknight.cn/elasticsearch-dump%20%E8%BF%81%E7%A7%BBes%E6%95%B0%E6%8D%AE%20%EF%BC%88elasticdump%EF%BC%89.html
需要注意的是,运行时不能以root用户身份,软链接是
/usr/local/bin
的
'#拷贝analyzer分词
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=analyzer
'#拷贝映射
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
--limit=10000
# 注意 elasticdump 提供给了--httpAuthFile 参数来做认证
--httpAuthFile When using http auth provide credentials in ini file in form
`user=<username>
password=<password>`
# 只需要写一个ini文件 ,文件中写入用户名和密码就可以了
# 这里其实还有另外一个好的方法
# 在--input参数和--output参数的的url中添加账号密码
# 例如
elasticdump \
--input=http://prod-username:prod-passowrd@production.es.com:9200/my_index \
--output=http://stage-username:stage-password@staging.es.com:9200/my_index \
--type=data
--limit=10000
优点
没有数据遗漏,启动快,占用资源较少
缺点
暂未发现