首页 文章

ArangoDB升级丢失了数据

提问于
浏览
2

我觉得我在ArangoDB升级过程中做错了 . 升级的最终结果是我的数据库存在,我的用户存在,我的集合存在,但我的集合中没有文档 . 显然这是一个问题 . 我有两次出现此问题,从Windows 2.3.1 - > 2.3.4和2.3.4 - > 2.4升级 . 我在两种情况下都使用了相同的程序:

  • 停止了ArangoDB服务

  • 从Program Files制作了ArangoDB目录的备份副本

  • 安装了新版本的ArangoDB

  • 将数据库文件夹的内容从旧的ArangoDB目录复制到新的目录,不包括系统数据库(我觉得这是我出错的地方......)

  • 然后我打开命令提示符到bin目录并运行arangod --upgrade

升级输出对我来说似乎是对的,它找到了旧的数据库并对它们进行升级,这一点可以从它们存在的事实以及集合中看出来 . 但如前所述,收藏品都是空的 . 值得庆幸的是,这是在开发环境中,但我担心升级我的 生产环境 环境 . 我做错了什么或这是一个错误?

2 回答

  • 1

    我尝试使用x64 Arango软件包重现步骤2.3.5到2.4.1

    我做了什么:

    首先,从shell运行arangod,在程序目录之外有自己的数据库目录:

    bin\arangod.exe c:\ee --console
    

    创建了一个集合,插入数据(比如js / server / tests / aql-optimizer-rule-use-index-for-sort.js setUp() - 函数确实)然后安装新版本,运行

    bin\arangod.exe c:\ee --upgrade
    

    然后

    bin\arangod.exe c:\ee --console
    AQL_EXECUTE("for u in UnitTestsAqlOptimizeruse_index_for_sort_XX return u")
    

    这给了我收集的所有100份文件 .

    接下来,我尝试运行arangod服务,使用Porgram Files文件夹中的var \ lib文件夹 . 我使用arangosh连接,再次将文档插入集合,验证

    db._query("for u in UnitTestsAqlOptimizeruse_index_for_sort_XX return u").toArray();
    

    所有数据都在那里 .

    然后停止服务,安装2.4.1,停止服务,并使用资源管理器复制ArangoDB 2.4.1 \ var \ lib目录,运行arangod --upgrade成功重启服务,并使用arangosh成功重新验证再次收集及其文件 .

    因此,这看起来与您所做的类似,您是否可以尝试使用最少的数据集重现这一点并将var \ lib目录发送给我们?

  • 0

    事实证明,问题与复制有关 . 我会复制 生产环境 数据库中的数据,以便在开发期间使用 . 然后当我在dev db上升级或停止Arango服务时,所有文件都会消失 . 但是,当我使用arango备份和还原来复制 生产环境 数据库数据时,一切都按预期工作 . Arango的最新版本应该已经解决了这个问题,但我没有时间去测试它 .

相关问题