迁移您的数据库
以下步骤假设
-
您已备份要迁移的任何 Neo4j 4.4 数据库。
-
您已安装等效的 Neo4j 5 DBMS 以将数据库迁移到该 DBMS。
切换到 Neo4j 5
如果您的安装方法(例如,tarball 或 docker)允许您在同一服务器上同时拥有 Neo4j 4.4 和 5 安装,您现在可以关闭 Neo4j 4.4 进程。或者,您可能更愿意让它保持运行状态,所有数据库都处于只读模式,直到迁移完成。
如果您选择同时运行两个 Neo4j 安装,请确保您的服务器拥有足够的资源来支持此操作,并且您对这两个安装的配置不会发生冲突(例如,端口)。 |
从现在开始,您将使用 Neo4j 5 DBMS。如果两个版本都在同一台机器上,您可能需要将默认的 Java 运行时更改为 Java 17。从 5.14 版本开始,Neo4j 还支持 Java 21。
确保 Neo4j 5 尚未托管任何与您要迁移的数据库同名的数据库(忽略 system
数据库)。
在 Neo4j 5 上还原数据库
您现在可以将数据库备份还原到 Neo4j 5。
如果您迁移到集群,只需将它们还原到一台服务器;之后,您将使用此服务器来播种其他服务器。
如果您从 Neo4j 4.4 社区版的安装中迁移数据库,则需要使用 有关更多信息,请参阅 操作手册 5 → 还原数据库转储. |
-
使用
neo4j-admin restore
命令还原每个数据库,但system
数据库除外/usr/bin/neo4j-admin database restore <databasename> --from-path=/migration-backups/<databasename>
-
使用
neo4j-admin database migrate
命令将文件元数据更新为 5 格式/usr/bin/neo4j-admin database migrate <databasename>
如果您没有为每个 BTREE 索引和索引支持的约束创建 RANGE、POINT 或 TEXT 索引,则该命令将失败。您可以使用 |
如果您还希望在迁移到 5.x 时压缩您的数据库,则可以使用存储副本作为在 4.4 和 5.x 之间迁移数据库的替代方法。 有关更多信息,请参阅 操作手册 5 → 复制数据库存储. |
重新创建数据库
启动 Neo4j 5 并使用以下 Cypher® 重新创建每个数据库
CREATE DATABASE <databasename>
-
启动 Neo4j 5 并通过运行检索您还原备份的服务器的服务器 ID
SHOW SERVERS YIELD address, serverId
在 Neo4j 5 集群上创建数据库时,您可以选择使用
TOPOLOGY
参数来指定所需的初级和次级副本数量。这些值可以在以后使用ALTER DATABASE
更改。有关更多信息,请参阅 操作手册 5 → 创建数据库.
-
使用以下 Cypher 重新创建每个数据库
CREATE DATABASE <databasename> TOPOLOGY [desired number of primaries] PRIMARIES [desired number of secondaries] SECONDARIES OPTIONS {existingData: 'use', existingDataSeedInstance: '[ServerId for a]'}
-
(可选) 每个
CREATE DATABASE
都会分配数据库,但这可能会导致不平衡的分配。您可以运行REALLOCATE DATABASES
使集群重新平衡跨集群所有服务器的数据库。REALLOCATE DATABASES
有关更多信息,请参阅 操作手册 5 → 重新分配数据库.
重新创建数据库别名
如果您使用的是数据库别名,则必须手动重新创建它们。有关别名的更多信息,请参阅 操作手册 → 管理标准数据库的数据库别名.
还原角色和权限
您可以使用在您在 创建每个数据库的备份 部分备份数据库时创建的元数据脚本还原与每个数据库关联的角色和权限。元数据脚本位于 _migration-backups/<databasname>/tools/metadata_script.cypher 中。使用 Cypher Shell 运行相应的元数据脚本
使用 cat
(UNIX)
cat migration-backups/data/scripts/databasename/restore_metadata.cypher | bin/cypher-shell -u user -p password -a ip_address:port -d system --param "database => '<databasename>'"
使用 type
(Windows)
type migration-backups\data\scripts\<databasename>\restore_metadata.cypher | bin\cypher-shell.bat -u user -p password -a ip_address:port -d system --param "database => '<databasename>'"
如果您在创建备份时未使用 |
监控日志
Neo4j 启动时,监控日志以查看迁移导致的任何错误或警告可能会有所帮助。您可以在 neo4j.log 文件中找到有关升级的信息。