了解 Neo4j 4 中的升级与迁移
本节描述了可能需要升级或迁移的 Neo4j 数据库管理系统组件,以及升级、迁移和存储副本之间的区别。
您应该了解的数据库管理系统组件
提前了解以下数据库管理系统组件很有用
- 数据库
-
数据库是用于在 Neo4j 数据库管理系统内存储数据(例如节点和关系)的单个数据库。其物理结构按文件组织在目录中,该目录与数据库同名。默认的 Neo4j 安装包含一个名为
neo4j
的默认数据库。在首次启动 Neo4j 之前可以配置不同的名称。Neo4j 3.5 仅支持一个数据库。Neo4j 4.0 引入了对多数据库的支持。
- 存储格式
-
存储格式定义了数据库数据在文件系统上的存储方式。每个数据库都有自己的存储格式,如果设置了
dbms.allow_upgrade=true
,则可以在服务器启动时自动升级。有关每个 Neo4j 版本可用的存储格式、如何配置它们及其限制的更多信息,请参阅操作手册 → 显示存储信息。
system
数据库-
Neo4j 4.0 及更高版本支持在同一数据库管理系统内管理多个数据库。所有这些数据库都通过一个共享数据库(称为
system
数据库)进行控制。system
数据库的作用是定义其他数据库的配置。数据库的配置类型多种多样,例如操作配置、数据库存在性、状态(在线/离线)、安全配置(RBAC)。system
数据库中包含的图结构随 Neo4j 的每个新主要版本
或次要版本
而变化。因此,每次将 Neo4j 部署升级到新的主要版本
或次要版本
时,system
数据库的内容也必须进行转换。
升级
Neo4j 升级是将现有单个或集群部署升级到更新的补丁版本
或次要版本
的过程。
此类升级不需要更改 Neo4j 配置或使用 Neo4j 的应用程序。例如,以下版本之间的升级:
-
同一
主要版本
和次要版本
内的相邻和非相邻补丁版本
,例如,从4.2.1
到4.2.2
或从4.3.0
到4.3.4
。 -
相邻的
次要版本
,例如,从4.0.0
到4.1.3
。
升级内容
-
Neo4j 产品。
-
存储格式,仅当引入了新格式或您想更改为其他格式时,例如,从
standard
到aligned
或high_limit
。不支持相反方向的更改。 -
system
数据库模式,它会重构该数据库的内容。
从 4.1 版开始,这会在独立服务器和离线集群升级(您临时将每个服务器设置为独立)中自动完成。但是,对于滚动升级,您必须在其他两项升级(产品和存储)完成后手动升级system
数据库。 -
配置设置。在
补丁版本
和次要版本
升级中,您不需要更改配置设置。如果保持 neo4j.conf 文件不变,一切都应该像旧版本一样工作。但是,某些版本可能包含新功能,因此最好始终查看配置设置和存储过程的变更并根据需要更新设置。
迁移
Neo4j 迁移是将现有单个或集群部署迁移到更新的主要版本
的过程。此类迁移需要审查 Neo4j 配置和使用 Neo4j 的应用程序。例如,以下版本之间的迁移:
-
主要版本
,例如,从3.5.13 到4.0.10。
迁移内容
-
Neo4j 产品。
-
数据库的存储格式(在服务器启动时自动升级)。
有关每个 Neo4j 版本可用的存储格式、如何配置它们及其限制的更多信息,请参阅操作手册 → 显示存储信息。 -
system
数据库模式,它会重构该数据库的内容(在 Neo4j 4.x 首次启动时自动创建)。 -
配置设置 — 新版本中的配置更改必须应用于旧配置文件。
-
应用程序代码 — 您的应用程序源代码必须根据新版本进行更新才能正常工作。
-
插件(包括自定义插件)- 所有插件都必须与新版本的 Neo4j 兼容。