Elasticsearch|版本之间的迁移

2025年3月17日 | 阅读 3 分钟

每当我们升级系统或任何软件到新版本时,它们总会发生一些变化。因此,我们需要通过维护数据、应用程序配置、设置和许多其他事项来维持它们。为此,我们需要遵循一些步骤,以使应用程序在新系统中保持稳定。这些步骤也有助于维护数据的完整性,防止数据损坏。

Elasticsearch Migrations between Versions

同样,elasticsearch 也是一种数据库软件,它也会在一段时间后提供新的更新。新版本总是在应用程序中提供一些更改。因此,在升级 elasticsearch 时,我们需要遵循以下步骤:

  1. 从这里阅读 elasticsearch 的更新文档 https://elastic.ac.cn/
  2. 在非生产环境(如 E2E、DEV、UAT 或 SIT)中测试升级后的版本。
  3. 请记住,没有数据备份,软件降级是不可能的。这意味着只有在备份数据后才能回滚到之前的版本。因此,在升级到更高版本之前,必须进行数据备份。
  4. 它可以使用滚动升级或完全集群重启进行升级。滚动升级对新版本很有用。

请注意,在使用滚动升级进行迁移时,不会出现服务中断。

升级步骤

在升级 elasticsearch 时,请按照以下步骤操作:

  1. 在升级生产集群之前,请在 DEV 或其他环境中测试升级。
  2. 在迁移之前备份您的数据。请记住,如果您没有数据的备份,则不允许您回滚到之前的版本。快照和恢复模块有助于进行备份,它会拍摄整个集群的快照并将其存储在远程存储库中。
    Elasticsearch Migrations between Versions
  3. 按以下顺序升级 elasticsearch 的组件
    1. Elasticsearch
    2. Elasticsearch 插件(您使用 elasticsearch 数据库安装的插件,例如 - elasticsearch-head 插件或 Kibana 等)。
  4. 在开始备份过程之前,需要在 elasticsearch 数据库中注册快照存储库。

注册快照存储库

执行以下代码以注册快照存储库

复制代码

在上面的存储库设置语法中,PUT 是一种 HTTP 请求方法,用于向 https://:9200/_snapshot/backup1 发送请求,其余文本是请求正文。

  • 在请求正文部分,我们传递“type”: “fs” 分片文件系统进行备份。它必须在每个数据和主节点中注册。
  • 在下一条语句中,我们提供备份存储库的路径以进行备份。
  • 我们需要重启节点以通过执行上述查询来完成注册。

完全集群重启

完全集群重启的过程包含一些高级步骤才能成功完成。在此过程中,我们关闭集群中的所有节点并升级它们。最后,我们需要重启集群以进行正常处理。

请按照以下步骤操作

步骤 1:关闭节点并使用以下命令禁用分片分配。

复制代码

响应

步骤 2:现在,使用以下代码停止索引并对 elasticsearch 进行同步刷新。

复制代码

步骤 3:通过终止每个节点上的所有 elastic 服务来关闭所有节点。

步骤 4:现在,升级所有节点。

步骤 5:升级 elasticsearch 的插件(如果有)。

步骤 6:启动所有升级后的节点。

步骤 7:等待所有节点,直到它们加入集群并且集群状态更改为黄色。

步骤 8:现在,重新启用分配。

成功重新启用分配后,集群开始将副本分片分配给数据节点。现在我们可以恢复索引和搜索,因为此时无需担心。请记住一件事,如果所有主分片和副本分片都已成功分配,并且所有节点的状态都是绿色,则集群可以更快地恢复。