ArangoDB升级丢失了数据

时间:2015-01-21 14:41:24

标签: database collections upgrade documents arangodb

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

  1. 停止了ArangoDB服务
  2. 从Program Files
  3. 制作ArangoDB目录的备份副本
  4. 安装了新版本的ArangoDB
  5. 将数据库文件夹的内容从旧的ArangoDB目录复制到新的目录,不包括系统数据库(我觉得这是我出错的地方......)
  6. 然后我打开命令提示符到bin目录并运行arangod --upgrade
  7. 升级输出对我来说似乎是正确的,它会找到旧的数据库并对它们进行升级,这可以从它们存在的事实以及集合中看出来。但如前所述,收藏品都是空的。值得庆幸的是,这是在开发环境中,但我担心升级我的生产环境。我做错了还是这个错误?

2 个答案:

答案 0 :(得分: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份文件。

接下来,我尝试使用 Porgram Files 文件夹中的var \ lib文件夹运行arangod服务。我使用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目录发送给我们?

答案 1 :(得分:0)

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