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