【发布时间】:2014-08-14 15:34:15
【问题描述】:
这是我的问题。我已经复制了 graph.db 进行备份。 Neo4j 是在我这样做时启动的。
之后,我删除了 graph.db,neo4j 开始了一个新的。 Neo4j 工作正常,没有问题。 但是当想再次复制graph.db(备份的)时,我得到:
Starting Neo4j Server...WARNING: not changing user
waiting for server to be ready... Failed to start within 120 seconds.
我已经卸载并重新安装了neo4j,它不起作用。
我认为是权限问题...如果是如何解决?我尝试使用 chmod 更改权限,但它不起作用...有人可以帮助我更改权限的代码或使用良好的权限配置 neo4j。
在日志上:多次出现:
2014-08-14 15:27:58.102+0000 INFO [API] Setting startup timeout to: 120000ms based on -1
Detected incorrectly shut down database, performing recovery..
还有什么建议吗? 感谢您的帮助。
【问题讨论】:
-
这有点像在黑暗中拍摄,但是当我尝试在慢速 IO 设备上创建 neo4j 数据库时,我已经看到了这种行为。 IE。有时,如果您尝试在外部 USB 驱动器上使用 neo4j-shell -path foo.db,如果数据库位于本地磁盘或更快的 IO 设备上,则不会发生这种情况。另外,你是如何“复制”的?你的意思是文件系统副本还是什么?
-
由于您在 neo4j 仍在运行时制作了 graph.db 的备份副本,因此我怀疑您的备份已以某种方式损坏。这可以解释为什么 neo4j 反复尝试(并且失败)从“错误关闭的数据库”中恢复,并最终超时。应该只在停止 neo4j 之后复制数据。我不确定如何从中恢复。
-
@FrobberOfBits 对于复制,我的意思是打开文件 graph.db 所在的路径,然后右键单击复制并粘贴到另一个文件夹中。它可能已损坏。然后我检查了我应该做的备份:这里出现了什么link
-
您可以尝试运行“bin/neo4j 控制台”以查看实际发生的情况以及报告了哪些错误吗?
-
查看@cybersam 的回答,你不能在 Neo4j 还在运行的时候复制数据库,你很容易得到损坏的数据。