ES 版本迁移

每当我们将系统或任何软件升级到更新版本时,它们总会有一些变化。因此,我们需要通过维护数据、应用程序配置、设置和许多其他东西来维持它们。为此,我们需要遵循几个步骤来使应用程序在新系统中稳定。这些步骤还有助于保持数据的完整性不被破坏。

Elasticsearch Migrations between Versions

类似地,elasticsearch 是数据库软件,它也会在一段时间后提供新的更新。较新的版本总是在应用程序中提供一些更改。因此,在升级elasticsearch时,我们需要按照以下步骤操作:

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

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

升级步骤

升级elasticsearch时,请遵循以下步骤:

  • 在升级生产集群之前,请在 DEV 或其他环境中测试升级。
  • 在迁移前备份您的数据。请记住,如果您没有数据备份,则不允许回滚到以前的版本。快照和恢复模块有助于进行备份,将完整集群的快照存储在远程存储库中。 Elasticsearch 版本间迁移
  • 按以下顺序升级elasticsearch的组件: 弹性搜索
  • Elasticsearch 插件(您安装了 Elasticsearch 数据库,例如-elasticsearch-head 插件或 Kibana 等。
  • 在开始备份过程之前,需要在 elasticsearch 数据库中注册快照存储库。

注册快照仓库

执行以下代码注册快照仓库:

PUT http://localhost:9200/_snapshot/backup1
{
    "type": "fs",
     "settings": {
                   "location": "/mount/backup/backup1",
                       "compress": true
      }
}

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

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

完整集群重启

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

按照下面给出的步骤:

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

PUT http://localhost:9200/_cluster/settings
{
    "persistent": {
                   "cluster.routing.allocation.enable": "none"
      }
}

回应

{
    "acknowledged": true,
    "persistent": {
           "cluster ": {
                 "routing ": {
                     "allocation": {
                          "enable": "none"
                     }
                 }
           }
      },
      "transient": { }
}

第 2 步: 现在,停止索引并使用以下代码在 elasticsearch 中同步刷新。

PUT http://localhost:9200/_flush/synced
{ }

步骤 3: 通过杀死每个节点上的所有弹性服务来关闭所有节点。

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

步骤 5: 升级elasticsearch的插件,如果有的话。

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

步骤 7: 等待所有节点加入集群并且集群状态变为黄色。

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

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

下一章:ES API约定

Elasticsearch中的API约定在 Web 中,API 是一组函数调用,用于访问特定应用程序中的软件组件。例如,Facebook API 允许开发人员从 Facebook 访问数据(如 DOB 或状态更新)或其他功 ...