准备迁移

主要版本引入了重大改进,并且与以前的 MAJOR 版本不兼容。与数据库交互的系统可能需要更新。并且始终需要停机时间。

查看更改

首先查看新功能、修复和重大更改。在执行此操作时,列出需要更新的连接到 Neo4j 的外部系统列表。特别是,

停机时间

在 Neo4j 版本之间迁移数据库始终需要停机时间。尽管可以将旧版本保留在线以只读模式运行。

由于每个案例都不同,因此建议您准备一个可以测试迁移过程的环境。这将为您提供比您估计更准确的时间,以及有关过程持续时间方面的预期。

迁移数据库所需的时间将取决于数据库的大小,因为每个数据库都必须备份和还原。4.4 和 5 之间没有需要长时间转换操作的文件格式更改。

磁盘空间注意事项

要迁移数据库,您必须创建备份(或社区版的转储文件)。备份/转储文件将需要与创建它的数据库相同数量的磁盘空间。因此,在开始之前,您应预留至少数据库目录大小的可用空间。

准备索引

在 Neo4j 5 中,BTREE 索引被 RANGE、POINT 和 TEXT 索引替换。为每个 BTREE 索引和索引支持的约束创建匹配的 RANGE、POINT 或 TEXT 索引并在迁移之前在 Neo4j 4.4 中填充它们是一个好主意。这有助于避免在 Neo4j 5 在迁移期间删除 BTREE 索引时出现任何性能下降。

不要删除旧的 BTREE 索引。它们必须与 Neo4j 4.4 中新创建的索引共存,因为新索引无法被您的 4.4 安装使用。旧索引将在迁移期间自动删除。

选择替换索引

在大多数情况下,RANGE 索引可以替换 BTREE。但是,在某些情况下,其他索引类型可能更合适,例如

  • 如果属性值类型为 point 并且 distancebounding box 查询用于该属性,请使用 POINT 索引。

  • 如果属性值类型为 text 并且值可能大于 8Kb,请使用 TEXT 索引。

  • 如果属性值类型为 text 并且在属性的查询中使用 CONTAINSENDS WITH,请使用 TEXT 索引。

可以在属性上拥有多种不同索引类型的索引。

创建索引

您可以在 Neo4j 4.4 数据库上运行 SHOW INDEXES 以显示其索引。对于每个索引和索引支持的约束,创建类型为 RANGE、POINT 或 TEXT 的**其他**索引或约束。

以下代码块显示了如何创建 RANGE 索引

CREATE RANGE INDEX range_index_name FOR (n:Label) ON (n.prop1)

如何创建受 RANGE 索引支持的约束的示例

CREATE CONSTRAINT constraint_with_provider FOR (n:Label) REQUIRE (n.prop1) IS UNIQUE OPTIONS {indexProvider: 'range-1.0'}

在数据库迁移期间,可以使用 neo4j-admin database migrate 命令的 --force-btree-indexes-to-range 选项强制 Neo4j 5 删除所有 BTREE 索引并将其替换为 RANGE 索引。但是,不建议这样做,因为 RANGE 索引并不总是最佳替换,并且在启动时新索引填充时性能会下降。

有关创建索引的更多信息,请参阅Cypher 手册→创建索引

应用程序代码

根据应用程序与 Neo4j 的交互方式,您应该准备好查看您的应用程序代码。所有可能影响您的应用程序和 Neo4j 的重大更改都可以在Neo4j 4.4 和 Neo4j 5.x 之间的重大更改中找到。

驱动程序

Neo4j 4.4 驱动程序与 Neo4j 5 兼容,而 Neo4j 5 驱动程序与 Neo4j 4.4 向下兼容。这意味着您可以先使用现有的驱动程序将您的应用程序迁移到 Neo4j 5,然后再升级驱动程序,反之亦然。请注意,只有在使用最新的 Neo4j 5 驱动程序时,才能访问新的 Neo4j 5 数据库功能。

Neo4j 5.x 中的集群

Neo4j 的集群在 5.x 系列中得到了显著改进,旧的因果集群不再受支持。新的集群基础架构将服务器与数据库分离,提高了可扩展性和云就绪性。要熟悉新概念,请阅读 操作手册 → 集群简介

插件(包括自定义插件)

请注意您正在使用的插件,并确保它们与 Neo4j 5.x 兼容。如果您开发了任何自定义插件,则应像审查应用程序代码一样审查它们。

如果您使用的是 Neo4j Bloom 或 Graph Data Science,您可以在 Neo4j 部署中心 中找到这些产品的最新版本。

如果您使用的是 APOC,请参阅 APOC 迁移指南 以获取指导。

其他第三方软件和工具

请注意您与 Neo4j 一起使用的任何其他第三方软件和工具。也许您已经利用操作脚本来安装、管理、备份或监控您的 Neo4j 部署。您可能还设置了警报并构建了完整的监控仪表板。您需要对其进行修改,因为 Neo4j Admin 工具、备份和恢复、集群、配置等方面都发生了一些变化。因此,建议您检查所有脚本/工具/第三方软件,并确保它们已准备就绪并与 Neo4j 5.x 兼容。