我已经设置了两个节点(两个不同的主机)的分片。我有650 MB的桌子。我选择了Year作为Sharding键。我的数据从2010年到2014年有多年。我已将我的块大小配置为默认值(64 MB)。 db.collection.stats的结果是
mongos> db.cTest.stats(1024 * 1024)
{
"sharded" : true,
"ns" : "dbTest.cTest",
"count" : 244000,
"numExtents" : 10,
"size" : 93,
"storageSize" : 123,
"totalIndexSize" : 7,
"indexSizes" : {
"_id_" : 7
},
"avgObjSize" : 0.0003811475409836066,
"nindexes" : 1,
"nchunks" : 1,
"shards" : {
"shard0001" : {
"ns" : "dbTest.cTest",
"count" : 244000,
"size" : 93,
"avgObjSize" : 0.0003811475409836066,
"storageSize" : 123,
"numExtents" : 10,
"nindexes" : 1,
"lastExtentSize" : 39,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 7,
"indexSizes" : {
"_id_" : 7
},
"ok" : 1
}
},
"ok" : 1
}
我可以看到"分片" value等于" true"我的sh.status向我展示了结果
mongos> sh.stats
mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 3,
"minCompatibleVersion" : 3,
"currentVersion" : 4,
"clusterId" : ObjectId("53302f0d24ca08864d73449c")
}
shards:
{ "_id" : "shard0000", "host" : "localhost:10001" }
{ "_id" : "shard0001", "host" : "mongod0.net:10001" }
{ "_id" : "shard0002", "host" : "mongod1.net:10002" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "dbTest", "partitioned" : true, "primary" : "shard0001" }
dbTest.cTest
shard key: { "Year" : 1 }
chunks:
shard0001 1
{ "Year" : { "$minKey" : 1 } }
-->> { "Year" : { "$maxKey" : 1 } } on : shard0001 Timestamp(1, 0)
我没有明白为什么shard2没有被填充。所选键是低基数1,行数均匀分布在数据中。
我可能在哪里出错?
答案 0 :(得分:0)
尝试强制在mongo shell上使用sh.splitAt