概述
如果直接进入了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)是啥意思
Options | Mean |
---|---|
-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 容器数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复