
docker-neo4j-3.5.28-社区版数据备份及还原(最新原创)
docker-neo4j-3.5.28-社区版数据备份及还原(最新原创)
·
一、备份之前需要确定是否关闭防火墙,不关闭防火墙会报错,显示没有权限,很容易误导人:
所以当需要备份的时候,第一时间关闭所有的防火墙
getenforce
setenforce 0
1、通过查看当前容器映射目录是否映射到容器外部文件
docker inspect 容器id
如果 neo4j 数据文件在 docker 容器内,则将 docker 容器内的 neo4j 的 data 文件夹复
制到本地,如果已经映射到本地则此步忽略:
docker cp neo4j:/var/lib/neo4j/data /home/neo4j/data
2、备份数据
备份前需要停掉容器,社区版不支持运行操作容器,以下命令不会对原有镜像造成影响,请放心运行:
docker run --interactive --tty --rm \
--publish=7474:7474 --publish=7687:7687 \
--volume=/home/neo4j/data:/data \
--volume=/home/neo4j/backups:/backups \
neo4j:3.5.28 \
neo4j-admin dump --database=graph.db --to=/data/20240322.dump
运行结果:
请注意1:,此处/data/20240322.dump 这个文件是相对于容器内部的,导出路径已经映射外部文件夹:/home/neo4j/data,所以导出的数据请在/home/neo4j/data文件下查找
请注意2:此处database在3.5.28下默认是graph.db,4.x以上的版本默认应该为neo4j,如果不确定可以打开data映射文件下的database文件下查看。
cd /home/neo4j/data/database
查看当前数据库名:
3、还原数据库
(1)、判断是否启动容器
if: 新环境有neo4j容器
将备份出来的20240322.dump复制到容器的data目录下(地址为容器data映射的本地文件下。本文在:/home/neo4j/data):
else :新环境没有neo4j容器,先运行创建容器命令映射data,此处/home/neo4j/data必须和以下的data地址相同,因为相当于先启动容器,映射data,然后通过命令将数据恢复到data中。
docker run -it -d --name neo4j \
--publish=7474:7474 --publish=7687:7687 \
--volume=/home/neo4j/data:/data \
--volume=/home/neo4j/logs:/logs \
neo4j:3.5.28
(2)、还原数据库
docker run --interactive --tty --rm \
--publish=7474:7474 --publish=7687:7687 \
--volume=/home/neo4j/data:/data \
neo4j:3.5.28 \
neo4j-admin load --from=/data/20240322.dump --database=graph.db --force
运行结果:
更多推荐
所有评论(0)