维护模式
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 版本。-
您可以使用values.yaml文件来做到这一点
-
打开您的values.yaml文件,并将
offlineMaintenanceModeEnabled: true
添加到neo4j
对象中neo4j: offlineMaintenanceModeEnabled: true
-
运行
helm upgrade
以应用更改helm upgrade <release-name> neo4j/neo4j -f values.yaml
-
-
或者,您可以将
neo4j.offlineMaintenanceModeEnabled
设置为true
作为helm upgrade
命令的一部分helm upgrade
neo4j/neo4j --version=5.25.1 --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
-
-
或者,您可以运行带有设置为
false
的标志的helm upgrade
helm upgrade
neo4j/neo4j-standalone --version=5.25.1 --reuse-values --set neo4j.offlineMaintenanceModeEnabled=false