Neo4j backup and recovery of docker container

neo4j backup in docker

#!/bin/bash
a=`date +%Y%m%d%H%M%S`
#根据当下服务器时间赋值
#注意如果在docker里面,docker内的时间可能和服务器不一样

docker stop d0b221864a53
#stop掉原容器,这样才能在copy的容器内进行dump数据库
#docker run -it --rm -v /home/jiangxu/neo4j/data:/data --name neo4j_1 neo4j neo4j-admin dump --database=neo4j --to="/data/$a.dump"
docker run -i --rm -v /home/neo4j/data:/data neo4j neo4j-admin dump --database=neo4j --to="/data/backup/$a.dump"
#当在后台做定时任务时,因为没有终端,所以我们要把-t去掉不然会TTY的报错
#这里 --rm直接在容器退出时自动销毁
# -v挂载宿主机的文件夹,将其设置为与原容器相同路径
#neo4jbackup是我起的容器名
#后面的neo4j是使用的镜像
#neo4j-admin具体解释不明白。相当于管理员进行执行吧,汗
#dump备份 数据库选择neo4j --to路径记得不能随便选,因为有的地方没有权限。这里选择data那里
#然后我也不知道为什么他会自动退出容器(没有挂起的程序就会退出吧)。总之后面如果加bash,就可以留在容器内
#或者docker exec进去
docker start d0b221864a53
#重启原来的容器

neo4j recovery in docker

Dump file recovery is not as convenient as backup, because it is in the container, which is not the same as directly saving in neo4j

# 关闭容器
docker stop neo4j_publisher


# 启动一个临时容器进行恢复
docker run --interactive --tty --rm \
  --volume=/home/neo4j/data_publisher:/data \
  --volume=/home/neo4j/data_publisher/backup:/backup \
  neo4j\
  neo4j-admin load --database=neo4j --from=/backup/20230526204232.dump --force

Docker-based Neo4j deployment and data backup and recovery_neo4j data backup_Cloud Computing-Security's Blog-CSDN Blog

Guess you like

Origin blog.csdn.net/qq_44789957/article/details/130887664