如何修复/显示在dbpath中有文件的TokuMX MongoDB中缺少的dbs列表?

时间:2014-08-21 14:24:27

标签: tokumx

我想将一个mongodb实例的数据文件(而不是mongodump)复制到另一个mongodb实例,这就是这个场景:

  1. 在计算机1上关闭MongoDB并将db文件复制到计算机2
  2. 在Machine 2上关闭MongoDB
  3. 将复制的数据文件从Machine 1移动到Machine 2上的MongoDB的dbpath
  4. 在Machine 2上启动MongoDB
  5. 现在,当我执行show dbs时,它不会列出之前存在的任何dbs,当然也没有列出已复制的数据库。

    既然我知道这不起作用,我想回滚在机器2上完成的更改。所以我关闭了实例,删除了复制的文件并重新启动但我仍然没有看到任何以前在那里的dbs。试图到处搜索如何修复这个无济于事。如何解决这个问题?

    注意:我在mongod上尝试了--repair参数,但它在TokuMX v1.4.1-mongodb-2.4.9上进行了描述

2 个答案:

答案 0 :(得分:0)

无法将一个服务器的子集复制到另一个服务器,所有内容都必须复制到新服务器。

如果要移动特定数据库中的单个集合或所有集合,则需要使用mongodump / mongorestore。

答案 1 :(得分:0)

我设法使用mongodump--dbpath来恢复数据,这允许我直接从数据库文件而不是mongod服务器创建dbs的备份(服务器必须离线才能这个工作)。然后我就可以使用mongorestore将数据加载到新实例。

我不得不使用mongodb-org而不是tokumx来实现这一点(使用tokumx,转储空出来了)。