我是靠谱客的博主 精明盼望,最近开发中收集的这篇文章主要介绍docker 备份neo4j 容器数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如果直接进入了neo4j 容器使用命令neo4j -admin 会报错,原因是不允许备份运行中的neo4j 容器

root@c478657c904c:/var/lib/neo4j/bin# neo4j-admin dump --database=neo4j --to=20210712.dump
Selecting JVM - Version:11.0.11, Name:OpenJDK 64-Bit Server VM, Vendor:Oracle Corporation
The database is in use. Stop database 'neo4j' and try again.
org.neo4j.server.startup.BootFailureException: Unexpected process failure. See log for info.
    at org.neo4j.server.startup.ProcessManager.run(ProcessManager.java:185)
    at org.neo4j.server.startup.BootloaderOsAbstraction.admin(BootloaderOsAbstraction.java:84)
    at org.neo4j.server.startup.Bootloader.admin(Bootloader.java:261)
    at org.neo4j.server.startup.Neo4jAdminCommand.call(Neo4jAdminCommand.java:67)
    at org.neo4j.server.startup.Neo4jAdminCommand.call(Neo4jAdminCommand.java:38)
    at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
    at picocli.CommandLine.access$1300(CommandLine.java:145)
    at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
    at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
    at picocli.CommandLine.execute(CommandLine.java:2078)
    at org.neo4j.server.startup.Neo4jAdminCommand.main(Neo4jAdminCommand.java:72)

查看neo4j的映射在bings里面
"HostConfig": {
            "Binds": [
                "/data/h/neo4j/logs:/logs:rw",
                "/data/h/neo4j/import:/var/lib/neo4j/import:rw",
                "/data/h/neo4j/data:/data:rw",
                "/data/h/neo4j/conf:/var/lib/neo4j/conf:rw"
            ],
docker inspect neo4j


1.创建另外一个neo4j的容器(neo4j_copy),并映射同样的数据库

docker run -v /data/h/neo4j/data:/data --name neo4j-container-dump -it neo4j /bin/bash

 这三个参数(-i, -t, -d)是啥意思

OptionsMean
-i以交互模式运行容器,通常与 -t 同时使用;
-t为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d后台运行容器,并返回容器ID;

2.停止容器neo4j,进入neo4j_copy容器进行数据导出

docker stop containerId
docker exec -it containerId(copy) /bin/bash

3.使用neo4j -admin dump导出数据

neo4j-admin dump --database=neo4j --to=20210712.dump

database = neo4j 这个是我要备份的数据库

--to = 2020.dump 这个是备份的名称

4.复制数据到容器外面docker cp  id:

docker cp containerId:/var/lib/neo4j/data/ /data/ 

 5.把数据复制到测试环境

docker cp ./20210712.dump containerId:/var/lib/neo4j/data/

6.和备份的服务器一样,需要重新开一个容器,并使用另外一台容器进行数据的导入

neo4j-admin load --from=/data/20210712.dump --database=neo4j --force

7.启动neo4j 数据库

最后

以上就是精明盼望为你收集整理的docker 备份neo4j 容器数据的全部内容,希望文章能够帮你解决docker 备份neo4j 容器数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部