如何将数据库移动到mongodb中的另一个分片

时间:2018-11-25 17:08:35

标签: mongodb

我有一个分片(1个主副本,3个辅助副本集)和许多数据库。我想将一个数据库移到我自己的分片上。没有停机时间。是否有捷径可寻?使用mongodb工具。

谢谢!

1 个答案:

答案 0 :(得分:0)

解决方案1:利用副本集

如果目的是将特定数据库迁移到新集群,则由于只有一个分片,因此您可以简单地将副本集成员添加到该集群。然后,在某些时候您可能想要:

  1. 从原始集群中删除成员;
  2. 使用它来创建新集群;
  3. 将您的应用切换到新集群;
  4. 仅保留所需的数据库。删除其他人;

优点:

  1. 使用复制可能是克隆数据的最可靠方法。
  2. 这很简单。

缺点:

  1. 有一些停机时间,但是经过适当的准备,停机时间可以在几分钟之内。
  2. 复制会克隆原始群集的所有数据,而不仅仅是您想要的数据。您可以稍后删除其他数据库。

解决方案2:更改流

如果使用的是MongoDB> = 3.6,则可以使用MongoDB change stream实时获取更改的数据,并将其应用到新集群中。这样,您需要进行一些编码。

解决方案3:MongoConnector

https://github.com/yougov/mongo-connector