版本
老集群ES 5.4
新集群ES 7.9
背景
客户的ES集群做了升级,公司服务器上搭建的ES集群也做了相应升级。现在要把ES5的数据迁移到7.9上。
说明
本文使用的reindex做迁移功能。如果数据量巨大的情况下可以考虑使用dump。reindex适合单索引几万十几万的情况下使用。
步骤
-
添加白名单
在新集群的 elasticsearch.yml 中添加
reindex.remote.whitelist: 旧集群ip:端口
重启新集群
-
更改参数
PUT _settings?pretty { "index.refresh_interval": -1, "index.number_of_replicas": 0 }
-
拉取数据
POST _reindex { "source": { "remote": { "host": "旧集群ip:端口", "username": "用户名", "password": "密码" }, "index": "索引名" }, "dest": { "index": "新的索引名,注意不要重复" } }
-
如果数据量比较大 也可以设置后台运行
POST _reindex?wait_for_completion=false
这时候会返回task_id
我们可以使用这个id查看状态GET _tasks/task_id
-
恢复设置
PUT _settings?pretty { "index.refresh_interval": "30s", "index.number_of_replicas": 1 }
删掉elasticsearch.yml中的 reindex.remote.whitelist并重启服务