注意事项和计划
本章描述在计划 Neo4j 数据库管理系统升级或迁移时需要考虑的事项。
计划升级或迁移对于确保一切顺利进行至关重要,并且在发生故障时您也能做好准备。本节旨在重点介绍一些需要注意的重要事项。
一般注意事项
持续时间
由于涉及大量活动部件(例如但不限于),因此无法预先了解升级或迁移需要多长时间。
-
您的数据存储的大小。
-
您是否需要迁移存储格式?
-
是否需要迁移索引?
-
您的索引有多大?
-
您的硬件速度有多快?
因此,建议准备一个可以进行背靠背测试升级或迁移过程的环境。这将为您提供比您估计更准确的时间,以及对流程持续时间方面预期内容的了解。根据经验法则,升级或迁移过程中的数据迁移部分(而非整个过程)对于 600GB 的存储大约需要 50~55 分钟。
配置更改
在PATCH
和MINOR
升级中,您无需更改配置设置。如果您保持neo4j.conf 文件不变,则所有内容都应与旧版本一样工作。但是,某些版本可能包含新功能,因此始终建议查看对配置设置和过程的更改,并在需要时更新设置。
新的MAJOR
版本会引入对配置设置的更改,例如新的配置名称、已弃用和已删除的功能。建议检查对配置设置的更改,以了解所有必需的更改。
在此阶段,良好的做法是浏览您当前的neo4j.conf 并捕获您可能拥有的任何非默认配置。您需要将这些配置添加到 Neo4j 4.x 的neo4j.conf 文件中。
您可以使用以下方法去除 neo4j.conf 文件的所有注释/空行
|
日志
所有日志格式/布局在 Neo4j 4.x 中都发生了更改。有些是次要的,有些则更为重要,因此请花时间熟悉新的格式以及它们包含的信息。如果您正在使用这些日志并根据它们生成警报,则值得检查日志格式更改的影响。
有关可用日志以及如何配置日志(包括日志轮换和保留)的更多信息,请参阅您要升级到的版本的操作手册→日志记录。
指标
在指标方面,有三个重要事项需要注意
-
4.2 版本中已更改默认启用的指标。任何您希望启用的特定指标都必须在配置中指定。
-
从 4.0 开始,指标命名规则已更改为包含数据库名称前缀。
-
Neo4j 4.0 版本还引入了指标命名空间,默认情况下这些命名空间处于禁用状态。
如果您要从 3.5 迁移到 4.x,并且已设置监控仪表板(无论是内部构建的还是来自第三方供应商的),则应了解这些更改将如何影响迁移后的仪表板。 操作手册包含关于此主题的两个有用部分 |
嵌入式部署
对于使用嵌入式部署的用户(当您将 Neo4j 包含在您的项目中时),从 4.2 版本开始,Neo4j 支持在嵌入模式下运行因果集群。但是,从 Neo4j HA 嵌入迁移而来,需要进行少量更改。有关更多信息,请参阅Java 参考→在 Java 应用程序中使用 Neo4j 嵌入和操作手册→嵌入式用法。
迁移注意事项
停机时间
迁移到较新的 Neo4j MAJOR
版本时,仅支持脱机迁移。因此,需要计划一些停机时间。相应地计划此操作。由于每个案例都是独一无二的,因此建议运行一个或多个测试迁移以了解流程需要多长时间才能背靠背完成。这些信息将使您能够更好地计划所需的停机时间窗口。
磁盘空间注意事项
迁移需要大量的可用磁盘空间,因为它会创建数据库的完整副本并创建临时文件。还建议在出现问题时备份生产存储。由于上述原因,最好为迁移目的保留数据库目录的两倍大小(如果事先进行备份,则为三倍)。
Java 版本
Neo4j 4.x 运行在 Java 11 上。下表显示了运行 Neo4j 实例的兼容 Java 虚拟机 (JVM)。
Neo4j 版本 | Java 版本 |
---|---|
4.x |
Java SE 11 |
3.x |
Java SE 8 |
如果您在托管 Neo4j 的机器上运行其他 Java 应用程序,请确保这些应用程序与 Neo4j 正在运行的 Java 版本兼容。或者,您应该配置在同一台机器上运行多个 JDK。 |
数据库命名规则
随着多个数据库的引入,数据库的命名规则已发生变化。例如,现在无法在数据库名称中使用下划线。有关命名规则的完整列表,请参阅操作手册→管理命令。
应用程序代码
根据您的应用程序如何与 Neo4j 交互,您应该准备好查看您的应用程序代码。Neo4j 4.x 有一些更改可能会影响您的应用程序,例如(但不限于)
所有可能影响您的应用程序和 Neo4j 的重大更改都可以在Neo4j 3.5 和 Neo4j 4.x 之间的重大更改中找到。
驱动程序
Neo4j 的官方驱动程序有一些重大的且破坏性的更改,您需要注意。在 Neo4j 1.7 驱动程序和 Neo4j 4.x 驱动程序之间的重大更改 部分包含所有信息并列出了所有重大更改。
以下是一些可能导致混淆的关键更改
-
从 Neo4j 4.0 开始,数据库、驱动程序和协议的版本控制方案都保持一致。对于受支持的驱动程序,这意味着版本号从 1.7 更改为 4.0。这仅仅是一个外观上的变化,实际上 4.0 版本的驱动程序只是 1.7 版本的下一个版本。
每个 Neo4j 官方驱动程序的驱动程序版本都从 1.7 提升到了 4.0。没有 1.8、2.x 和 3.x 版本的驱动程序。
-
驱动程序的默认加密配置现在为
false
。默认情况下,4.x 驱动程序仅尝试纯文本连接。 -
当显式启用加密时,默认情况下,持有自签名证书的连接将在证书验证时失败。在 Neo4j 4.x 中,默认信任模式是信任操作系统信任的 CA。
-
从驱动程序的包名称中删除了
v1
。 -
neo4j://
方案替换了bolt+routing://
,可用于集群和单实例配置。 -
对于 4.0 服务器,会话实例现在应针对特定数据库获取。
-
书签已从字符串和字符串列表更改为 Bookmark 对象。
-
一些特定于语言的驱动程序更改。
以上列表并未反映驱动程序中所有更改的全部内容,因此务必阅读 Neo4j 1.7 驱动程序和 Neo4j 4.x 驱动程序之间的重大更改 部分。如果不这样做,当您的应用程序尝试在迁移后连接到 Neo4j 时,可能会导致意外问题。作为提示,您还可以查看 Neo4j 驱动程序文档(适用于所有官方支持的语言),其中将指导您完成所有驱动程序功能配置,例如深入了解身份验证、异步会话和反应式会话(客户端侧背压)。 |
插件(包括自定义插件)
请注意您正在使用的插件,并确保它们与 Neo4j 4.x 兼容。
以下是最常用的插件/插件类型
-
最常用的插件之一是 APOC,这是一个扩展 Neo4j 功能的过程库。如果您正在使用 APOC,请查看 版本兼容性矩阵,并确保您计划在 Neo4j 迁移时同时升级 APOC。
要快速检查您的 APOC 版本,您可以运行
RETURN apoc.version();
-
如果您正在使用 Neo4j Bloom 或图数据科学库 (GDSL),您可以在 Neo4j 部署中心 中找到这些产品的最新版本。请注意,某些早期版本的 Bloom 和 GDSL 最初与 Neo4j 4.0 不兼容。此问题已完全解决,所有产品套件都与 4.x 系列兼容。因此,建议您只需升级到这些产品的最新版本。
-
如果您开发了任何自定义插件,则应像审查应用程序代码一样审查它们。Neo4j 4.x 中的多个更改可能会影响这些自定义插件的行为,因此,强烈建议为此预留一些时间。
其他第三方软件和工具
请注意您与 Neo4j 一起使用的任何其他第三方软件和工具。也许您已经利用操作脚本来安装、管理、备份或监控您的 Neo4j 部署。您可能还设置了警报并构建了完整的监控仪表板。您需要修改这些内容,因为指标已经发生了变化(如 指标 部分所述),并且 Neo4j 操作工具现在考虑了多个数据库。因此,建议您审查所有脚本/工具/第三方软件,并确保它们已准备好并与 Neo4j 4.x 兼容。