故障排除
可帮助您诊断和解决问题的故障排除信息。
您可以查看运维手册 → 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。 |