维护模式
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
设置为true
helm upgrade
neo4j/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 进程
jps
19 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
命令中将该标志设置为false
helm upgrade
neo4j/neo4j-standalone --version=2025.05.0 --reuse-values --set neo4j.offlineMaintenanceModeEnabled=false