neo4j在docker部署(docker compose)下备份和恢复

环境:
OS:Centos 7
neo4j:5.24.2
部署方式:docker compose

 

提前准备测试数据
创建2个节点
create (p1:Person {name:"zs"})
create (p2:Person {name:"ls"})

创建两个节点及它们之间的关系
create (p1:Person {name:"zs"}) -[:like]-> (p2:Person {name:"ls"})

 

1.创建备份目录
[root@localhost neo4j]#mkdir -p /home/middle/neo4j/backup/20250625
[root@localhost neo4j]#chown -R 7474:7474 /home/middle/neo4j/backup/

 

2.停掉容器
我这里使用的是docker compose方式部署的
[root@localhost neo4j]# cd /home/middle/neo4j
[root@localhost neo4j]# docker compose stop

 

3.备份(容器里面没有backup这个目录的)

docker run --interactive --tty --rm \
  --volume=/home/middle/neo4j/data:/data \
  --volume=/home/middle/neo4j/backup/20250625:/backup \
  registry.cn-shenzhen.aliyuncs.com/hxlk8s/neo4j:5.24.2 \
  neo4j-admin database dump neo4j --to-path=/backup

 

这里使用的neo4j:5.24.2 版本需要与已经部署的nej4o版本要一致

[root@localhost neo4j]# docker run --interactive --tty --rm \
>   --volume=/home/middle/neo4j/data:/data \
>   --volume=/home/middle/neo4j/backup/20250625:/backup \
>   registry.cn-shenzhen.aliyuncs.com/hxlk8s/neo4j:5.24.2 \
>   neo4j-admin database dump neo4j --to-path=/backup
2025-06-25 02:44:20.888+0000 INFO  [o.n.c.d.DumpCommand] Starting dump of database 'neo4j'
Done: 36 files, 257.9MiB processed.
2025-06-25 02:44:23.281+0000 INFO  [o.n.c.d.DumpCommand] Dump completed successfully

 

备份后会生成如下的文件

[root@localhost 20250625]# ls -al
total 16
drwxr-xr-x 2 7474 7474    24 Jun 25 10:44 .
drwxr-xr-x 3 7474 7474    22 Jun 25 10:20 ..
-rw-r--r-- 1 7474 7474 13894 Jun 25 10:44 neo4j.dump

 

4.启动neo4j模拟删除所有数据
[root@localhost 20250625]# cd /home/middle/neo4j
[root@localhost neo4j]# docker compose start

删除所有节点数据
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

 

5.停掉容器
[root@localhost neo4j]# cd /home/middle/neo4j
[root@localhost neo4j]# docker compose stop

 

6.恢复

docker run --interactive --tty --rm \
  --volume=/home/middle/neo4j/data:/data \
  --volume=/home/middle/neo4j/backup/20250625:/backup \
  registry.cn-shenzhen.aliyuncs.com/hxlk8s/neo4j:5.24.2 \
  neo4j-admin database load --from-path=/backup neo4j --overwrite-destination=true

 

[root@localhost neo4j]# docker run --interactive --tty --rm \
>   --volume=/home/middle/neo4j/data:/data \
>   --volume=/home/middle/neo4j/backup/20250625:/backup \
>   registry.cn-shenzhen.aliyuncs.com/hxlk8s/neo4j:5.24.2 \
>   neo4j-admin database load --from-path=/backup neo4j --overwrite-destination=true
Done: 36 files, 257.9MiB processed.

 

7.启动容器检查恢复情况
[root@localhost neo4j]# cd /home/middle/neo4j
[root@localhost neo4j]# docker compose start

posted @ 2025-06-25 11:18  slnngk  阅读(82)  评论(0)    收藏  举报