neo4j - 将 neo4j 数据库从 2.0.1 升级到 2.1.3 失败

标签 neo4j upgrade

我正在尝试将在 Windows 上运行的 Neo4j 商店从 2.0.1 升级到 2.1.3。

我所做的,从工作 2.0.1 开始。环境如下:

  • .\2.0.1\bin\neo4jinstall.bat 删除
  • xcopy .\2.0.1\data\findsi.graphdb .\2.1.3\data\findsi.graphdb
  • .\2.1.3\bin\neo4jinstall.bat 安装

这将失败并显示以下消息: 检测到错误关闭数据库,正在执行恢复..

我的(2.1.3)messages.log 文件告诉我这一点:

    2014-08-11 09:45:46.352+0000 ERROR [o.n.k.EmbeddedGraphDatabase]: Startup failed: Component 'org.neo4j.kernel.impl.transaction.XaDataSourceManager@3198c7f6' was successfully initialized, but failed to start. Please see attached cause exception.: Component 'org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@4d8088da' was successfully initialized, but failed to start. Please see attached cause exception.: 'neostore.nodestore.db' does not contain a store version, please ensure that the original database was shut down in a clean state.
    2014-08-11 09:45:46.352+0000 INFO  [o.n.k.EmbeddedGraphDatabase]: Shutdown started
    2014-08-11 09:45:46.352+0000 ERROR [o.n.s.e.EnterpriseBootstrapper]: Failed to start Neo Server on port [7474]
    org.neo4j.server.ServerStartupException: Starting Neo4j Server failed: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, C:\NEO4J-~1.3\data\findsi.graphdb
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:221) ~[neo4j-server-2.1.3.jar:2.1.3]
        at org.neo4j.server.Bootstrapper.start(Bootstrapper.java:103) [neo4j-server-2.1.3.jar:2.1.3]
        at org.neo4j.server.Bootstrapper.main(Bootstrapper.java:57) [neo4j-server-2.1.3.jar:2.1.3]
    Caused by: java.lang.RuntimeException: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, C:\NEO4J-~1.3\data\findsi.graphdb
        at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:362) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:59) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.impl.recovery.StoreRecoverer.recover(StoreRecoverer.java:123) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.server.preflight.PerformRecoveryIfNecessary.run(PerformRecoveryIfNecessary.java:65) ~[neo4j-server-2.1.3.jar:2.1.3]
        at org.neo4j.server.preflight.PreFlightTasks.run(PreFlightTasks.java:71) ~[neo4j-server-2.1.3.jar:2.1.3]
        at org.neo4j.server.AbstractNeoServer.runPreflightTasks(AbstractNeoServer.java:357) ~[neo4j-server-2.1.3.jar:2.1.3]
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:154) ~[neo4j-server-2.1.3.jar:2.1.3]
        ... 2 common frames omitted
    Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.transaction.XaDataSourceManager@3198c7f6' was successfully initialized, but failed to start. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:513) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:339) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        ... 8 common frames omitted
    Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@4d8088da' was successfully initialized, but failed to start. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:513) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.impl.transaction.XaDataSourceManager.start(XaDataSourceManager.java:164) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        ... 10 common frames omitted
    Caused by: org.neo4j.kernel.impl.storemigration.StoreUpgrader$UpgradingStoreVersionNotFoundException: 'neostore.nodestore.db' does not contain a store version, please ensure that the original database was shut down in a clean state.
        at org.neo4j.kernel.impl.storemigration.UpgradableDatabase.checkUpgradeable(UpgradableDatabase.java:76) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.impl.storemigration.StoreMigrator.needsMigration(StoreMigrator.java:103) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.impl.storemigration.StoreUpgrader.getParticipantsEagerToMigrate(StoreUpgrader.java:241) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.impl.storemigration.StoreUpgrader.migrateIfNeeded(StoreUpgrader.java:129) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.start(NeoStoreXaDataSource.java:350) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507) ~[neo4j-kernel-2.1.3.jar:2.1.3]
        ... 13 common frames omitted

现在,如果我执行 .\2.0.1\bin\neo4jinstall.bat install 一切都会再次正常运行,尽管是旧版本。我的猜测是,它与实际数据库无关。

正如文档所述,我通过在 2.1.3 环境中设置 allow_store_upgrade=true 来设置显式升级。

我不愿意手动更改数据库文件夹中的内容,但我确实需要升级,因为它解决了我一直在努力解决的一些性能问题。

最佳答案

可能有2个问题

  1. 您是否执行了 xcopy/r(即递归)?
  2. Windows 通过硬终止方式终止服务,即不让它正确关闭

因此,在 2.0.1 启动时,它总是必须执行恢复,而 2.0.3 拒绝在非完全关闭的数据库上启动。

您可以通过使用

启动 2.0.1 数据库一次来缓解这种情况

bin\Neo4jShell.bat -path data\findsi.graphdb

使用您的数据库,然后使用quit彻底停止它,然后再复制它。

关于neo4j - 将 neo4j 数据库从 2.0.1 升级到 2.1.3 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240820/

相关文章:

android - 如何使用 onUpgrade 方法修改 Android 中 SQLite 表中的类型?

ruby-on-rails - 升级到 Ruby 2.2 后的 Rails 3 ActiveRecord #size 方法错误

opengl - 如何升级我的 OpenGL 版本?

entity-framework - 当我在 4.0 中构建它时更新我的​​ EF 模型以使用 4.1

neo4j - 在不同的属性上使用 neo4j DISTINCT 和 ORDER BY

neo4j - 全局分布式 Neo4j 的架构?

grails - Grails升级2.4.0-> 2.5.4缓存插件问题

csv - 在Neo4j中导入csv文件

java - Neo4j : Traverser only get first and last node

node.js - Neo4j javascript 示例错误 : WebSocket connection to 'ws://localhost:7687/' failed: ERR_CONNECTION_REFUSED