通过在具有相同活动数据库的Docker容器中运行的Neo4J从备份中还原

时间:2018-08-27 13:48:13

标签: docker neo4j backup restore

我有一个运行在Docker容器中的Neo4J实例。我想定期启动Docker容器,以通过restoring并运行check-consistency报告来确认我的备份可用并正确。此外,我没有使用默认的活动数据库名称graph.db,而是使用了neo4j。我想让容器使用活动数据库名称为neo4j的备份启动,以便我可以对备份进行现场检查(即,也许使用带有docker的bash脚本或使用entrypoint

根据文档,在从备份还原之前,应首先停止Neo4J。但是,由于在docker容器中运行Neo4J不会创建PID文件,因此无法成功发出停止命令。如果我已经在运行Docker容器,则会看到以下问题:

$ docker exec inf_neo4j-server_1 neo4j stop Neo4j not running $ docker exec inf_neo4j-server_1 neo4j-admin restore --from=/backups/neo4j-data/3.3.4/backups/neo4j/ --database=neo4j --force command failed: the database is in use -- stop Neo4j and try again

因此,我必须使用唯一的数据库名称(例如neo4j-backup),该名称当前尚未用于使恢复命令正常工作。

如何使用Docker从备份中还原,并使Neo4J使用备份中的指定活动数据库?我知道我可以通过使用docker compose文件中的以下环境变量或使用docker run命令"NEO4J_dbms_active__database=neo4j"切换活动数据库来停止并删除容器并将其备份。

0 个答案:

没有答案