4

有一个名为 MongoDB 的数据库maindatabase,它有 3 个名为用户、标签和类别的文档集合,我想知道是否可以将它们分别拆分在三个不同的服务器上(在不同的云服务提供商上)。

我的意思不是作为副本,而是只有一个服务器集合(一个数据库在服务器上只有类别集合,一个在另一台服务器上具有用户,一个在第三台服务器上用于标签)可以由 mongos 路由器有选择地路由。

有谁知道这是否可能?

4

2 回答 2

1

除了@matulef 关于通过 手动操作数据库的答案之外movePrimary,也许这需要一个更简单的解决方案,即只维护 3 个数据库连接:每台服务器一个,每个位于您最初指定的不同云提供商的数据中心。您不会拥有单个mongos连接点的简单性,但通过您的三个连接,您可以直接在它们各自的连接上操作userstags和。categories

于 2012-05-23T03:27:27.827 回答
0

不幸的是,您目前不能以这种方式将集合拆分到单个数据库中。但是,如果您将每个集合放在不同的数据库中,则可以执行此操作。在分片系统中,每个数据库都有一个与之关联的“主分片”,该数据库上的所有非分片集合都存在于其中。如果您将 3 个集合分成 3 个不同的数据库,则可以使用“movePrimary”命令将它们单独移动到不同的分片:

http://www.mongodb.org/display/DOCS/movePrimary+Command

但是,创建更多数据库会产生一些开销,因此尚不清楚这是否是满足您需求的最佳解决方案。

于 2012-05-22T18:52:02.090 回答