维护模式
Neo4j 支持两种维护模式:在线和离线,您可以使用它们来执行不同的维护任务。
在线维护
在线维护不需要停止 neo4j 进程。它使用 kubectl exec 命令执行。
直接运行任务
kubectl exec <release-name>-0 -- neo4j-admin database info --from-path=/var/lib/neo4j/data/databases --expand-commands
|
所有 |
要运行一系列命令,请使用交互式 shell
kubectl exec -it <release-name>-0 -- bash
|
使用 |
离线维护
您可以使用 Neo4j 离线维护模式来执行需要 Neo4j 离线的维护任务。在此模式下,neo4j 进程不运行。但是,Neo4j Pod 会运行,但它永远不会达到 READY 状态。
将 Neo4j 实例置于离线模式
-
要将 Neo4j 实例置于离线维护模式,您需要设置
offlineMaintenanceModeEnabled: true并升级 helm release。-
您可以通过使用 values.yaml 文件来完成此操作
-
打开您的 values.yaml 文件,并将
offlineMaintenanceModeEnabled: true添加到neo4j对象neo4j: offlineMaintenanceModeEnabled: true -
运行
helm upgrade以应用更改helm upgrade <release-name> neo4j/neo4j -f values.yaml
-
-
或者,您可以在
helm upgrade命令中将neo4j.offlineMaintenanceModeEnabled设置为truehelm upgradeneo4j/neo4j --version=2025.05.0 --reuse-values --set neo4j.offlineMaintenanceModeEnabled=true
-
-
轮询
kubectl get pods直到 Pod 重启(STATUS=Running)。kubectl get pod <release-name>-0 -
使用交互式 shell 连接到 Pod
kubectl exec -it "<release-name>-0" -- bash -
查看正在运行的 Java 进程
jps19 Jps
结果显示除了
jps本身之外,没有其他正在运行的 Java 进程。
在离线模式下运行任务
离线维护任务使用 kubectl exec 命令执行。
-
直接运行任务
kubectl exec <release-name>-0 -- neo4j-admin database info --from-path=/var/lib/neo4j/data/databases --expand-commands -
要运行一系列命令,请使用交互式 shell
kubectl exec -it <release-name>-0 -- bash -
对于长时间运行的命令,请使用 shell 并使用
nohup运行任务,这样即使kubectl exec连接断开,任务也会继续。kubectl exec -it <release-name>-0 -- bash $ nohup neo4j-admin database check neo4j --expand-commands &>job.out </dev/null & $ tail -f job.out
将 Neo4j DBMS 置于在线模式
完成维护任务后,将 Neo4j 实例恢复正常运行
-
您可以通过使用 values.yaml 文件来完成此操作
-
打开您的 values.yaml 文件,并将
offlineMaintenanceModeEnabled: false添加到neo4j对象neo4j: offlineMaintenanceModeEnabled: false -
运行
helm upgrade以应用更改helm upgrade <release-name> neo4j/neo4j -f values.yaml
-
-
或者,您可以在
helm upgrade命令中将该标志设置为falsehelm upgradeneo4j/neo4j-standalone --version=2025.05.0 --reuse-values --set neo4j.offlineMaintenanceModeEnabled=false