故障排除
可以帮助您诊断和纠正问题的故障排除信息。
您可以查阅操作手册 → Neo4j 日志文件,以监控升级过程并验证其进行过程中未出现问题。如果出现问题,以下已知的故障排除信息可以帮助您诊断并纠正问题。
常见问题解决方案
调用 dbms.upgrade
导致失败
upgradeResult
字段描述了哪些组件未能升级。
- 解决方案
-
要排查根本原因,可以尝试两件事
-
调用更详细的命令版本 —
dbms.upgradeDetails
,它会返回一条包含底层抛出异常的消息。这可能不是根本原因,但有助于缩小范围。 -
在 security.log 和 debug.log 中查找描述性警告和错误。堆栈跟踪应有助于追查问题的根本原因。
-
尝试在不兼容的版本之间升级,例如从 Neo4j 3.5 迁移到 Neo4j 4.1
当检测到的 system
数据库版本过旧时,状态代码为以下之一
-
UNSUPPORTED_BUT_CAN_UPGRADE
- 服务器关闭。- 解决方案
-
配置
dbms.mode=SINGLE
。这会启用system
数据库模式的自动升级,因为当dbms.mode=SINGLE
时,设置dbms.allow_single_automatic_upgrade
默认为true
。
-
UNSUPPORTED
- 服务器关闭。- 解决方案
-
无法直接升级,请先升级到受支持的中间版本。
并非所有实例都已升级到 Neo4j 新版本时调用 dbms.upgrade
-
在任何仍在运行旧版本的实例上调用
dbms.upgradeStatus
会返回UNSUPPORTED_FUTURE
。 -
这些旧实例不再能够授权用户。
-
对这些实例的所有查询都会导致错误。
- 解决方案
-
关闭、升级并重新启动实例以恢复服务。
dbms.upgradeStatus
的状态代码
状态 | 描述 | 解决方案 |
---|---|---|
|
未检测到此组件的子图。 |
需要初始化。 |
|
子图已是当前版本。 |
无需操作。 |
|
子图受支持但版本较旧,需要升级。 |
运行 |
|
子图不受支持;此组件无法运行。 |
以单实例模式重新启动 Neo4j,以便在启动时升级此组件。 |
|
子图不受支持,因为它太旧了;此组件无法运行。 |
降级 Neo4j,然后在再次升级 Neo4j 之前升级此组件。 |
|
子图不受支持,因为它是一个较新的版本;此组件无法运行。 |
升级 Neo4j。 |