我是MongoDB Sharding的新手。我在mongos
上创建了config server
和xyz.com
以及一个分片,在xyzshard.com
服务器上创建了第二个分片:
mongos
上 xyz.com:27019
在config server
xyz.com:27018
xyz.com:27017
上的第一个分片
xyzshard.com:27017
上的第二个分片
我的数据库是test
,收藏品是test_collection
。我已在test.test_collection
上启用了分片。
我已使用_id
"hash"
字段
db.test_collection.ensureIndex( { _id : "hashed" } )
我运行以下命令:
for (var i = 1; i <= 500; i++)
db.test_collection.insert( { x : i } )
我得到以下输出:
WriteResult({ "nInserted" : 1 })
但是当我在这两个分片上运行查找查询时:
db.test_collection.find()
我得到每个碎片上的所有文件。
这是正确的方式还是我在哪里出错?
xyz.com上的sh.status()输出
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("55b8d3e9a8742d49164820b6")
}
shards:
{ "_id" : "shard0000", "host" : "localhost:27017" }
balancer:
Currently enabled: yes
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
No recent migrations
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "test", "partitioned" : true, "primary" : "shard0000" }
test.test_collection
shard key: { "_id" : "hashed" }
chunks:
shard0000 2
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong(0) } on : shard0000 Timestamp(1, 1)
{ "_id" : NumberLong(0) } -->> { "_id" : { "$maxKey" : 1 } } on : shard0000 Timestamp(1, 2)
{ "_id" : "test_db", "partitioned" : false, "primary" : "shard0000" }
{ "_id" : "db", "partitioned" : false, "primary" : "shard0000" }
xyzshard.com上sh.status()的输出
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("55b8d3e9a8742d49164820b6")
}
shards:
{ "_id" : "shard0000", "host" : "localhost:27017" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "test", "partitioned" : true, "primary" : "shard0000" }
test.test_collection
shard key: { "_id" : "hashed" }
chunks:
shard0000 2
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong(0) } on : shard0000 Timestamp(1, 1)
{ "_id" : NumberLong(0) } -->> { "_id" : { "$maxKey" : 1 } } on : shard0000 Timestamp(1, 2)
{ "_id" : "test_db", "partitioned" : false, "primary" : "shard0000" }
{ "_id" : "db", "partitioned" : false, "primary" : "shard0000" }
答案 0 :(得分:0)
您应该连接到您的mongos服务器并在其上插入数据。您可以插入50000条记录用于测试目的。 然后运行sh.status()。
你终于可以看到发行版了。 请记住,您的配置服务器应该正在运行,并且所有分片服务器都连接到mongos服务器。