我们有一个Mongodb集群,它有10个碎片(0-9)和两个不同的应用程序,被认为是APP1和APP2。APP1和APP2都有不同的数据模型和碎片键。
我们希望将碎片0到5分配给APP1,将6-9分配给APP2。为此,我们为每个碎片创建了标记,并使用以下命令为每个应用程序分配了一个范围:
sh.addShardTag('shard0', 'APP1_V0')
sh.addTagRange("test.collectiontest", {"_id.s":0,"_id.i" : MinKey}, {"_id.s":0, "_id.i" : MaxKey}, "APP1_V0")我们根据应用程序的切分键在每个碎片上添加了类似的标记范围。
我们在创建集合时所面临的问题,即分配给集合的主碎片与分配给集合的标记不同。例如,App1集合被标记为碎片0-5,但是当我创建集合时,分配给集合的主碎片是shard7。
我使用sh.status()命令检查了主服务器。
我们能否控制这种行为,即在创建集合的同时,将其分配给特定的碎片。
Mongodb版本: 3.4.2
发布于 2017-10-16 06:44:49
答案是否定的。标签,只有“指南”,平衡器移动块。创建DB后,需要使用movePrimary命令“更改”主碎片。
https://dba.stackexchange.com/questions/188533
复制相似问题