集群就地滚动升级

重要提示

如果您正从 5.26 LTS 升级到任何 2025-2026 版本,建议在继续之前阅读 介绍从 Neo4j 5.26 LTS 到 Neo4j 2025.01 及更高版本的更改

在 2025.01 版本中,发现服务 v1 已被移除。因此,在升级到任何 2025-2026 版本之前,您必须先迁移到 v2。有关详细信息,请参阅 操作手册 → 从发现服务 v1 迁移到 v2。此外,dbms.cluster.discovery.version 设置在 Neo4j 2025.01 及更高版本中被忽略,dbms.cluster.discovery.v2.endpoints 已弃用,建议使用 dbms.cluster.endpoints。因此,建议在更换二进制文件时,在每台服务器的 neo4j.conf 文件中删除 dbms.cluster.discovery.version 并将 dbms.cluster.discovery.v2.endpoints 替换为 dbms.cluster.endpoints。否则,您可以稍后再进行此操作。

下面是滚动升级的示例,通过一次升级单个服务器来完成。此方法在整个升级过程中保持集群可用。但在每台服务器离线期间,会降低容错能力。

准备工作

在每台服务器上完整执行以下步骤后,再继续下一台服务器。您必须确保集群在继续之前恢复到稳定状态。

升级步骤(对每台服务器重复执行)

  1. 检查集群健康状况。

    1. 使用以下查询检查服务器是否托管了其分配的所有数据库。该查询不应返回任何结果

      SHOW SERVERS YIELD name, hosting, requestedHosting, serverId WHERE requestedHosting <> hosting

      复合数据库会同时出现在 hostingrequestedHosting 字段中。

    2. 使用以下查询来检查所有数据库是否处于预期状态。该查询应该返回无结果:

      SHOW DATABASES YIELD name, address, currentStatus, requestedStatus, statusMessage WHERE currentStatus <> requestedStatus RETURN name, address, currentStatus, requestedStatus, statusMessage
  2. 对于就地滚动升级,单个服务器的步骤与升级独立服务器相同。具体步骤取决于您选择的 Neo4j 部署方式。

    针对常见部署提供示例

  3. (从 Neo4j 5.26 LTS 升级时建议)在重启服务器之前,删除 dbms.cluster.discovery.version 并在 neo4j.conf 文件中将 dbms.cluster.discovery.v2.endpoints 替换为 dbms.cluster.endpoints

  4. 重启服务器并确认其成功运行。

    运行以下命令并检查服务器状态是否为 Enabled,运行状况是否为 Available

    SHOW SERVERS WHERE name = [server-id];
  5. 通过运行以下命令确认所有数据库均处于预期状态

    SHOW DATABASES YIELD name, address, currentStatus, requestedStatus, serverID WHERE currentStatus <> requestedStatus AND serverID = [server-id] RETURN name, address, currentStatus, requestedStatus
  6. 在下一台服务器上重复这些步骤,直至所有服务器升级完成。

监控日志

当 Neo4j 重启时,建议监控日志以查看是否有由升级引起的错误或警告。neo4j.log 文件包含有关升级的信息。

© . This site is unofficial and not affiliated with Neo4j, Inc.