【问题标题】:mongodbrestore don't seem to restore all documentsmongodbrestore 似乎没有恢复所有文件
【发布时间】:2012-12-11 10:02:04
【问题描述】:

在dump/enron 目录messages.bson 和messages.medata.json 文件中。它应该恢复 120,477 份文件。 我想从中恢复数据。 我输入命令:

mongorestore -v --db enron --drop  dump/enron

命令完成后,我收到一条消息: 找到 120477 个对象 不知道如何处理文件 [dump/enron/messages.metadata.json]

但在收集消息中,我看到 112196 个文档使用:

db.messages.count()

你能告诉我它有什么问题吗? 命令的输出:

c:\mongodb\mongodb-win32-i386-2.0.5\bin>mongorestore -v  dump/enron/
Tue Dec 11 14:17:39 creating new connection to:127.0.0.1
Tue Dec 11 14:17:39 BackgroundJob starting: ConnectBG
Tue Dec 11 14:17:39 connected connection!
connected to: 127.0.0.1
Tue Dec 11 14:17:39 dump/enron/messages.bson
Tue Dec 11 14:17:39      going into namespace [enron.messages]
Tue Dec 11 14:17:39      file size: 396236668
                126878231/396236668     32%
                270206614/396236668     68%
                375698921/396236668     94%
                381433738/396236668     96%
                387378348/396236668     97%
                394626836/396236668     99%
120477 objects found
don't know what to do with file [dump/enron/messages.metadata.json]

消息:“不知道如何处理文件 [dump/enron/messages.metadata.json]”是什么意思?

【问题讨论】:

    标签: mongodb mongorestore


    【解决方案1】:

    这应该可行:

    ssharma$ mongorestore -d enron --collection messages /dump/enron/messages.bson
    connected to: 127.0.0.1
    Thu Mar  7 13:05:05 /dump/enron/messages.bson
    Thu Mar  7 13:05:05     going into namespace [enron.messages]
    Thu Mar  7 13:05:09         74234213/396236668  18% (bytes)
    Thu Mar  7 13:05:12         126614885/396236668 31% (bytes)
    Thu Mar  7 13:05:15         192098158/396236668 48% (bytes)
    Thu Mar  7 13:05:18         208083274/396236668 52% (bytes)
    Thu Mar  7 13:05:21         231816712/396236668 58% (bytes)
    Thu Mar  7 13:05:24         293564538/396236668 74% (bytes)
    Thu Mar  7 13:05:27         356071219/396236668 89% (bytes)
    Thu Mar  7 13:05:30         379387449/396236668 95% (bytes)
    120477 objects found
    Thu Mar  7 13:05:32     Creating index: { key: { _id: 1 }, ns: "enron.messages", name: "_id_" }
    ssharma$ ./mongo
    MongoDB shell version: 2.2.2
    connecting to: test
    > use enron
    switched to db enron
    > db.messages.count()
    120477
    

    【讨论】:

      【解决方案2】:

      还原bson文件时需要指定数据库和集合。

      它像这样对我有用:

      $ mongodump -d mark --collection coll 
      connected to: 127.0.0.1
      DATABASE: mark   to     dump/mark
          mark.coll to dump/mark/coll.bson
               1000 objects
      

        $ mongorestore -d mark --collection newcoll dump/mark/
          connected to: 127.0.0.1
          Wed Aug 29 11:48:39 dump/mark/coll.bson
          Wed Aug 29 11:48:39      going into namespace [mark.newcoll]
          1000 objects found
      

      你可以试试 -

      mongorestore -d enron --collection messages /dump/enron/
      

      【讨论】:

      • 但是它在正确的集合中复制数据,问题是文档数量不正确。为什么它说:“找到 120477 个对象”;但恢复后只有112196。在恢复之前没有数据在收集中。
      • 消息:“不知道如何处理文件 [dump/enron/messages.metadata.json]”是什么意思?
      • 很难判断无法访问您的数据,但是,减少的数字表明某些对象未成功导入。这似乎是由于损坏或结构问题(消息don't know what to do 似乎证实了这一点)。您可以尝试bsondump 原始 bson 文件并分析它是否损坏。您还可以使用-vvvvv 增加mongorestore 的详细程度,以查看是否记录了更多内容。
      • 很奇怪我在windows xp机器上出现错误但是删除linux服务器就可以了。
      • 我手边没有 XP 盒子,但如果你在 Linux 上做某事,它可以工作,但在 XP 上不行,那么它似乎是 XP 上的一个错误。你用的是什么版本?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多