V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
JCZ2MkKb5S8ZX9pq
V2EX  ›  MongoDB

mongodump/restore 丢数据?

  •  
  •   JCZ2MkKb5S8ZX9pq · 2021-06-14 19:47:24 +08:00 · 1637 次点击
    这是一个创建于 1256 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 想从一台电脑上把一个数据库挪出来腾点地方,用的 mongodump+restore 。
    • 结果大部分 collection 正常,但有几个新库 collection 比源库少了几十万条数据,还有一个新库比源库多了几百条数据。
    • 数据量比较大,排查比较麻烦。以前用 dump 也没遇到过这种情况。想请问看看大家有遇到过这种情况嘛?
         src |      new |  same |    diff
    -------- | -------- | ----- | -------
     1386863 |  1387090 | False |     227
    33635751 | 33004251 | False | -631500
    ...
    
    3 条回复    2021-06-15 23:57:36 +08:00
    piapia123
        1
    piapia123  
       2021-06-15 13:10:20 +08:00
    1. 新库比源库少是因为源库数据一直有更新?
    2. 新库比源库多是因为 mongo 本身 count 函数的不准确性?
    JCZ2MkKb5S8ZX9pq
        2
    JCZ2MkKb5S8ZX9pq  
    OP
       2021-06-15 20:11:46 +08:00
    @piapia123

    1. 数据未更新,所以 dump 到硬盘做备份了,打算移到另一台机器上 restore,偶尔本地读取。
    2. count / estimated_document_count 结果一致。
    JCZ2MkKb5S8ZX9pq
        3
    JCZ2MkKb5S8ZX9pq  
    OP
       2021-06-15 23:57:36 +08:00
    @piapia123

    换成了 DB[collection].count_documents({}) 好了

    好像另两种是读 meta 还是啥的,碰到意外 shutdown 等情况会导致数据不准。这种基本等同于 find 再 count,应该就对了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3107 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:40 · PVG 20:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.