磁盘已满后neo4j无法启动

时间:2014-10-22 14:16:40

标签: neo4j spring-data-neo4j

我的neo4j服务器在设备上没有剩余空间后无法启动'错误。不幸的是,最后一次备份是2天。 这是通过spring-data-neo4j在webapp中使用的neo4j 2.0.0。有什么办法可以恢复数据库吗?附上日志,但我想它是通用的,以提供真正的帮助。

 org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@39931f5e' was successfully initialized, but failed to start. Please see attached cause exception.
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:509) ~[neo4j-kernel-2.0.1.jar:2.0.1]
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) ~[neo4j-kernel-2.0.1.jar:2.0.1]
    at org.neo4j.kernel.impl.transaction.XaDataSourceManager.start(XaDataSourceManager.java:164) ~[neo4j-kernel-2.0.1.jar:2.0.1]
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:503) ~[neo4j-kernel-2.0.1.jar:2.0.1]
    ... 68 common frames omitted

引起:java.lang.IllegalArgumentException:null         在java.nio.Buffer.limit(Buffer.java:267)〜[na:1.7.0_71]         at org.neo4j.kernel.impl.util.IoPrimitiveUtils.readAndFlip(IoPrimitiveUtils.java:122)~ [neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.Command.readDynamicRecord(Command.java:326)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.Command.readDynamicRecords(Command.java:279)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.Command.readPropertyBlock(Command.java:249)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.Command $ PropertyCommand.readPropertyRecord(Command.java:1022)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.Command $ PropertyCommand.readFromFile(Command.java:965)~ [neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.Command.readCommand(Command.java:1456)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource $ CommandFactory.readCommand(NeoStoreXaDataSource.java:505)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.transaction.xaframework.LogIoUtils.readTxCommandEntry(LogIoUtils.java:177)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.transaction.xaframework.LogIoUtils.readLogEntry(LogIoUtils.java:114)〜[neo4j-kernel-2.0.1.jar:2.0.1]         at org.neo4j.kernel.impl.transaction.xaframework.LogIoUtils.readEntry(LogIoUtils.java:91)〜[neo4j-kernel-2.0.1.jar:2.0.1]         at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.readEntry(XaLogicalLog.java:858)~ [neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.doInternalRecovery(XaLogicalLog.java:794)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.open(XaLogicalLog.java:219)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.open(XaLogicalLog.java:174)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.transaction.xaframework.XaContainer.openLogicalLog(XaContainer.java:64)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.start(NeoStoreXaDataSource.java:383)〜[neo4j-kernel-2.0.1.jar:2.0.1]         在org.neo4j.kernel.lifecycle.LifeSupport $ LifecycleInstance.start(LifeSupport.java:503)〜[neo4j-kernel-2.0.1.jar:2.0.1]

1 个答案:

答案 0 :(得分:1)

早期版本的2.0在磁盘空间不足时存在已知问题 - 这已在最近的版本中得到解决。您可以通过手动修复数据存储区来恢复 - 但这是一项耗时的操作,需要很多关于Neo4j内部的知识。