我是mongoDB上的新手,我想知道如果我在mongodb分片群集中没有任何块,这是否正常?
让我说明一下。我有三个碎片:
mongos> use config
mongos> db.getSiblingDB("config").shards.find()
{ "_id" : "shard1", ... }
{ "_id" : "shard2", ... }
{ "_id" : "shard3", ... }
mongos>
我有一些数据库,特别是一个关于shard1的数据库:
mongos> db.getSiblingDB("config").databases.find()
{ "_id" : "udev_prod", "partitioned" : false, "primary" : "shard1" }
但根本没有任何块......:
mongos> db.getSiblingDB("config").chunks.find()
mongos>
最重要的是,如果我连接到udev_prod数据库并尝试获取任何集合的分片,mongoDB告诉我它没有分片......
mongos> db.User.getShardDistribution()
Collection udev_prod.User is not sharded.
我认为我在这里遗漏了一些东西,或者它运作不正常......有人可以告诉我这种情况是否正常" ?
非常感谢
最好的问候
于连
答案 0 :(得分:1)
这是您在数据库中找到的关键部分:
"partitioned" : false
这意味着数据库没有启用分片。首先需要enable sharding为数据库,然后在创建任何块之前shard a collection(和pick a shard key)。否则,数据库只存在于一个分片上 - 它仍然可用,只是没有分片。
有一个完整的教程可用于设置带有分片集的分片群集,this is the section您想要开始。