拥有一个名为maindatabase
的MongoDB数据库,其中有3个文档集合命名为users,tags和categories,我想知道是否可以将它们分别分布在三个不同的服务器上(在不同的云服务提供商上)。
我的意思不是作为副本,而只是一个服务器集合(一个数据库只有服务器上的类别集合,一个用户在另一个服务器上,另一个用于第三个服务器上的标签)可以由mongos路由器有选择地路由
有人知道是否有可能吗?
答案 0 :(得分:1)
除了@matulef关于通过movePrimary
手动操作数据库的答案之外,这可能需要一个更简单的解决方案,只需维护3个数据库连接:每个服务器一个,每个服务器都在最初指定的不同云提供商的数据中心。您不会拥有单个mongos
连接点的简单性,但是通过三个连接,您可以直接操作users
,tags
和categories
。他们各自的联系。
答案 1 :(得分:0)
不幸的是,您目前无法以这种方式在单个数据库中拆分集合。但是,如果将每个集合放在不同的数据库中,则可以执行此操作。在分片系统中,每个数据库都有一个与之关联的“主分片”,该数据库上的所有未分片集合都存在。如果将3个集合分成3个不同的数据库,则可以使用“movePrimary”命令将它们分别移动到不同的分片:
http://www.mongodb.org/display/DOCS/movePrimary+Command
但是,制作更多数据库会产生一些开销,因此不清楚这是否是满足您需求的最佳解决方案。