Neo4j恢复损坏的节点

时间:2014-06-04 17:14:49

标签: neo4j upgrade corruption

我刚刚通过debian存储库将neo4j从2.0.3升级到2.1.1。

重新启动(设置allow_store_upgrade=true)后,我发现其中一个节点存在问题:

Unable to load one or more relationships from Node[324720]. This usually happens when relationships are deleted by someone else just as we are about to load them. Please try again.

此节点在关闭数据库之前就已更新。也许这可能是原因?

无论如何,我在messages.log中没有看到任何错误。

此外,现在,当我尝试备份数据库时:

Performing backup from 'single://10.90.169.86'
19:29:04.480 [main] INFO  o.n.k.InternalAbstractGraphDatabase - No locking implementation specified, defaulting to 'forseti'
Exception in thread "main" java.lang.RuntimeException: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, /mnt/backup/neo4j-backup
    at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:357)
    at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:59)
    at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:90)
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:199)
    at org.neo4j.backup.BackupService.startTemporaryDb(BackupService.java:287)
    at org.neo4j.backup.BackupService.doIncrementalBackup(BackupService.java:203)
    at org.neo4j.backup.BackupService.doIncrementalBackupOrFallbackToFull(BackupService.java:231)
    at org.neo4j.backup.BackupTool.doBackup(BackupTool.java:235)
    at org.neo4j.backup.BackupTool.run(BackupTool.java:162)
    at org.neo4j.backup.BackupTool.main(BackupTool.java:72)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.transaction.XaDataSourceManager@10b434b' was successfully initialized, but failed to start. Please see attached cause exception.
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:513)
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115)
    at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:334)
    ... 9 more
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@597e83fc' was successfully initialized, but failed to start. Please see attached cause exception.
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:513)
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115)
    at org.neo4j.kernel.impl.transaction.XaDataSourceManager.start(XaDataSourceManager.java:164)
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507)
    ... 11 more
Caused by: org.neo4j.kernel.impl.storemigration.UpgradeNotAllowedByConfigurationException: Failed to start Neo4j with an older data store version. To enable automatic upgrade, please set configuration parameter "allow_store_upgrade=true"
    at org.neo4j.kernel.impl.storemigration.ConfigMapUpgradeConfiguration.checkConfigurationAllowsAutomaticUpgrade(ConfigMapUpgradeConfiguration.java:39)
    at org.neo4j.kernel.impl.storemigration.StoreUpgrader.migrateIfNeeded(StoreUpgrader.java:139)
    at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.start(NeoStoreXaDataSource.java:350)
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507)
    ... 14 more

当然,我尝试设置allow_store_upgrade并重新启动,但它不会改变任何内容。

有没有办法解决这个问题?我不确定你需要什么其他信息(日志等),所以请告诉我。

1 个答案:

答案 0 :(得分:0)

在HA模式下尝试将2.0.4存储升级到2.1.4时出现此错误。原来你应该在SINGLE模式下升级,然后再次在HA模式下重启。但在此之前,奴隶应该被清空,以便自动同步。

详细信息在手册中:http://docs.neo4j.org/chunked/2.1.4/ha-upgrade-guide.html#ha-standard-upgrade