我的服务器上有一个运行 neo4j 的 docker 容器,我设置了自动备份来备份数据库。我尝试测试从备份中恢复数据库,但我不知道如何在 docker 容器中恢复数据库。
我正在尝试使用 docker exec -t bin/neo4j-admin restore --from=/path/to/backup --database=graph.db --force
我从 neo4j 文档中了解到您必须关闭 neo4j 才能恢复备份,但我很确定在容器中关闭 neo4j 会关闭我的容器(容器是使用 bin/neo4j 控制台启动的
)。有没有办法在不关闭neo4j的情况下恢复备份,或者有没有办法在不关闭容器的情况下关闭neo4j?或者我是否必须直接在我的服务器上运行没有 docker 的 neo4j?
目前,唯一可行的解决方案是将备份的 graph.db 文件夹复制到实际数据文件夹中,但我认为这不是正确的方法。
最佳答案
我遇到了同样的问题。最终我在一个正在运行的 neo4j 容器上使用了 neo4j-admin restore
,使用了一个新的数据库名称,例如。 --database=new.db
。然后停止实例并在 neo4j.conf
中将 dbms.active_database=graph.db
更改为 dbms.active_database=new.db
(这仅适用如果您在已安装的卷中有配置文件。据我所知,没有可用于设置事件数据库的环境变量)。这仍然不是最方便的解决方案,所以我希望有更好的方法。
关于docker - 恢复到 neo4j docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42253738/