【问题标题】:upgrade neo4j 2.2 to 2.3 to 3.3 error "can't upgrade v0.A.5 to v0.A.8"将 neo4j 2.2 升级到 2.3 到 3.3 错误“无法将 v0.A.5 升级到 v0.A.8”
【发布时间】:2018-03-16 15:58:05
【问题描述】:

我在将我的 neo4j 数据库从 2.2.0 社区版迁移到 3.3.3 企业版时遇到了困难。启动 neo4j 3.3.3 的错误是“无法将版本为 'v0.A.5' 的商店升级到当前商店版本 'v0.A.8' (Neo4j 3.3.3)。”

我正在遵循的过程是将数据库从 2.2.0 升级到 2.3.8,然后将 2.3.8 数据库升级到 3.3.3。

为了从 2.2.0 升级到 2.3.8,我遵循了此处的文档: https://neo4j.com/docs/2.3.8/deployment-upgrading.html

基本上,这包括:

  • 关闭 2.2.0
  • 将 graph.db 目录复制到安装了 2.3.8 的服务器上
  • 将该graph.db目录放在数据目录中,调整权限
  • 启动 neo4j

这个过程没有错误地完成

为了从 2.3.8 升级到 3.3.3,我遵循了此处的文档: https://neo4j.com/docs/operations-manual/current/upgrade/deployment-upgrading/

我在 3.3.3 服务器上应用了这个过程到从 2.3.8 转移过来的 graph.db 目录

sudo service neo4j stop
rm -rf /var/lib/neo4j/data/databases/graph.db
neo4j-admin import --mode=database --database=graph.db --
from=/path/to/2.3/version/of/graph.db
sudo chown -R neo4j:neo4j /var/lib/neo4j/data/databases/graph.db
sudo service neo4j start

在neo4j 3.3.3开始时,syslog显示了大量的错误输出,其中最突出的部分是:

Mar 15 22:35:38 ip-XXX-XXX-XXX-XXX neo4j[61967]: 2018-03-15 22:35:38.644+0000 ERROR Failed to start Neo4j: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@a202ccb' was successfully initialized, but failed to start. Please see the attached cause exception "Not possible to upgrade a store with version 'v0.A.5' to current store version `v0.A.8` (Neo4j 3.3.3).". Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@a202ccb' was successfully initialized, but failed to start. Please see the attached cause exception "Not possible to upgrade a store with version 'v0.A.5' to current store version `v0.A.8` (Neo4j 3.3.3).".
Mar 15 22:35:38 ip-XXX-XXX-XXX-XXX neo4j[61967]: org.neo4j.server.ServerStartupException: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@a202ccb' was successfully initialized, but failed to start. Please see the attached cause exception "Not possible to upgrade a store with version 'v0.A.5' to current store version `v0.A.8` (Neo4j 3.3.3).".

在 3.3.3 服务器上检查 2.3.8 的 graph.db 显示:

neo4j-admin store-info --store=/path/to/2.3/version/of/graph.db
Store format version:         v0.A.5
unexpected error: Unknown store version 'v0.A.5'

我的服务器信息是:

  • 2.2.0 社区:我相信从 tarball 安装了 ubuntu 14.04(我没有构建此服务器)
  • 2.3.8 社区:通过 apt-get 安装的 ubuntu 16.04 作为服务运行
  • 3.3.3 企业版:通过 apt-get 安装的 ubuntu 16.04 作为服务运行

我的问题是:

将现有 2.2.0 数据库成功升级到 3.3.3 的正确过程是什么?

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    也许这里的文档不完全准确,我们需要采取额外的步骤。

    由于您升级到 2.3.8 似乎运行良好,我会将此作为以下过程的基准。

    很久以前我写了一个骇人听闻的升级脚本,请参阅https://gist.github.com/sarmbruster/3011606。在第 46 行将版本更改为 3.0.12 并检查升级 2.3.8 -> 3.0.12 是否有效。如果是,继续 3.3.4。

    您的 graph.db 文件夹有多大?

    【讨论】:

    • 这看起来很有希望。但是脚本失败并显示“无法解析类 org.neo4j.kernel.EmbeddedGraphDatabase”。我检查了 m2.neo4j.org/content/repositories/releases/org/neo4j/neo4j-community/ 上的存储库,发现它们只转到 2.3.0 是否有此脚本可以使用的 url 转到 3.3.3?
    • 可以使用new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(storeDir).setCConfig("dbms.allow_upgrade", "true").newGraphDatabase()替换脚本中的代码
    【解决方案2】:

    neo4j 操作手册,从 3.1 版开始,记录了如何将数据库从 2.x 版升级到 3.1+。

    例如,here is the section of the docs for upgrading from 2.x to 3.3.4。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2022-10-13
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多