Mongodump不适用于新的Meteor 1.8

时间:2018-12-21 11:41:55

标签: mongodb meteor

我刚刚将Meteor从1.2更新到1.8,我的应用程序变得非常慢。

我要备份数据库

mongodump -h 127.0.0.1 --port 3001 -d meteor

但是它给了我这个错误:

mongodump -h 127.0.0.1 --port 3001 -d meteor
2018-12-21T16:37:04.269+0500    writing meteor.__kdtimeevents to 
2018-12-21T16:37:04.269+0500    writing meteor.__kdtraces to 
2018-12-21T16:37:04.269+0500    writing meteor.users to 
2018-12-21T16:37:04.270+0500    writing meteor.jobPaymentDetails to 
2018-12-21T16:37:04.270+0500    Failed: error writing data for collection `meteor.__kdtimeevents` to disk: error reading collection: Failed to parse: { find: "__kdtimeevents", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "meteor" }. Unrecognized field 'snapshot'.

我在这里应该做什么?

3 个答案:

答案 0 :(得分:1)

再次仔细查看错误消息,我看到了:

meteor.__kdtimeevents` to disk: error reading collection: 
Failed to parse: 
  { find: "__kdtimeevents", 
  skip: 0, 
  snapshot: true, 
  $readPreference: { 
    mode: "secondaryPreferred" 
  }, 
  $db: "meteor" }. 

Unrecognized field 'snapshot'. 

该错误可能意味着数据库结构从更改为(与Meteor 1.2无关的任何mongo版本),并且不再存在快照。该查询还说secondaryPreferred-暗示它是一个集群?

您是否有数据备份? (但愿如此)。如果您仍然有系统的可操作版本,那么我将返回到该版本,然后从那里进行mongodump。

如果该集合仍然失败,则可以在每个集合上执行一个单独的mongodump命令,这有点费力,但也许有效。

答案 1 :(得分:0)

听起来您正在将重要数据存储在开发数据库中(如果要备份)。

如果您不关心数据,则可以使用meteor reset命令清除数据库。

如果您关心数据,则可能有问题。失败的集合是Kadira集合,对您而言并不重要。如果您一直遇到失败,则可以一次转储一个集合。

答案 2 :(得分:0)

将Mongodb版本更新为4.0,这是最新版本,现在可以为我修复它。感谢您的所有帮助。