我的服务器上有一个运行neo4j的docker容器,我已经设置了自动备份来备份数据库。我尝试从备份中测试还原数据库,但我无法弄清楚如何在docker容器中恢复数据库。
我试图使用docker exec -t bin/neo4j-admin restore --from=/path/to/backup --database=graph.db --force
我从neo4j文档中读到你必须关闭neo4j以恢复备份,但我非常确定在容器中关闭neo4j会关闭我的容器(容器是使用bin/neo4j console
启动的)。有没有办法在不关闭neo4j的情况下恢复备份,或者在不关闭容器的情况下关闭neo4j的方法?或者我必须直接在我的服务器上运行没有docker的neo4j?
目前,唯一有效的解决方案是将备份的graph.db文件夹复制到实际的数据文件夹中,但我不认为这是正确的方法。
答案 0 :(得分:1)
找到一种更简单的方法来更改Docker Neo4J容器的默认数据库,您只需在docker run或service命令中设置一个环境变量:
-e NEO4J_dbms_active__database="test.db"
答案 1 :(得分:0)
我遇到了同样的问题。最后,我在运行的neo4j容器上使用neo4j-admin restore
,使用新的数据库名称,例如。 --database=new.db
。然后停止了实例并将dbms.active_database=graph.db
更改为dbms.active_database=new.db
中的neo4j.conf
(这仅适用于已装入卷中的配置文件。据我所知,没有可用的环境变量设置活动数据库)。这仍然不是最方便的解决方案,所以我希望有更好的方法来做到这一点。