$ ls ~yifei/notes/

迁移并升级 Elasticsearch 5.5 到 6.8

Posted on:

Last modified:

最近需要把一个 ES 5.5 的集群迁移到 K8S 上,因为目标环境中只有 ES 7 集群,所以在迁移过程中 还需要升级下索引的版本。不过最终只升级到了 6.8。

开始看到了一个 reindex 的 API,想着直接从老集群 reindex 过去就好了,结果发现不行。直接 reindex 会丢掉类型信息。

首先尝试了一个搜到的工具:ElasticDump, 然而速度太慢了。后来发现 ES 有原生的 snapshot API,只需要使用这个 API 备份好,然后导入新的集群即可,而且再这个过程中还可以升级版本,简直 完美。具体操作如下:

  1. 创建 5.5 的 snapshot 到本地硬盘
  2. 下载 snapshot 到 6.8 集群机器上
  3. 在 6.8 集群中导入 snapshot

本来想通过 6.8 中再导出然后升级到 7.x,结果发现导出的版本显示还是 5.x 版本的索引,放弃了

因为我的集群中没有安装任何插件,所以插件的兼容性和升级也不用考虑。

查看集群的恢复状态:

GET _cat/recovery?v&pretty

查看 snapshot 的状态

GET /_snapshot/my_backup/snapshot_1

查看 snapshot 详情

GET /_snapshot/my_backup/snapshot_1/_status

参考

  1. https://www.elastic.co/cn/blog/moving-from-types-to-typeless-apis-in-elasticsearch-7-0
  2. Migration API
  3. https://www.elastic.co/guide/en/elasticsearch/reference/7.17/removal-of-types.html
  4. https://www.elastic.co/guide/en/elasticsearch/reference/7.17/snapshot-restore.html
WeChat Qr Code

© 2016-2022 Yifei Kong. Powered by ynotes

All contents are under the CC-BY-NC-SA license, if not otherwise specified.

Opinions expressed here are solely my own and do not express the views or opinions of my employer.

友情链接: MySQL 教程站