0

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

  1. 关闭机器 1 上的 MongoDB 并将 db 文件复制到机器 2
  2. 关闭机器 2 上的 MongoDB
  3. 将复制的数据文件从机器 1 移动到机器 2 上 MongoDB 的 dbpath
  4. 在机器 2 上启动 MongoDB

现在,当我执行show dbs它时,它没有列出以前存在的任何数据库,当然也没有列出已复制的数据库。

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

注意:我在 mongod 上尝试了 --repair 参数,但它在 TokuMX v1.4.1-mongodb-2.4.9 上被贬低

4

2 回答 2

0

不可能只将一个服务器的子集复制到另一个服务器,所有内容都必须复制到新服务器。

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

于 2014-08-21T17:26:05.287 回答
0

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

我必须使用 mongodb-org 而不是 tokumx 才能工作(使用 tokumx 转储是空的)。

于 2014-08-21T19:58:16.960 回答