我正在尝试切分MongoDB。我已经完成了分片配置,但我不确定如何验证分片是否有效。
如何检查我的数据是否被分片?是否有查询来验证/验证分片?
发布于 2011-01-07 15:29:34
MongoDB在这里有关于分片的详细文档...
http://www.mongodb.org/display/DOCS/Sharding+Introduction
要回答您的问题(我认为),请参阅config Servers上的部分...
每个配置服务器都有所有区块信息的完整副本。使用两阶段提交来确保配置服务器之间配置数据的一致性。
基本上,配置服务器的工作是确保所有内容都被分片……正确无误。
此外,还有一些系统集合,您可以query ...
db.runCommand( { listshards :1} );
在下面的prez中也有很多帮助。
http://www.slideshare.net/mongodb/mongodb-sharding-internals
http://www.10gen.com/video/mongosv2010/sharding
发布于 2011-04-18 23:28:37
您还可以在您的mongos路由器上执行一条简单的命令:
> use admin
> db.printShardingStatus();应该输出关于分片、分片的数据库和mongodb documentation中提到的分片集合的信息
sharding version: { "_id" : 1, "version" : 2 }
shards:
{ "_id" : ObjectId("4bd9ae3e0a2e26420e556876"), "host" : "localhost:30001" }
{ "_id" : ObjectId("4bd9ae420a2e26420e556877"), "host" : "localhost:30002" }
{ "_id" : ObjectId("4bd9ae460a2e26420e556878"), "host" : "localhost:30003" }
databases:
{ "name" : "admin", "partitioned" : false,
"primary" : "localhost:20001",
"_id" : ObjectId("4bd9add2c0302e394c6844b6") }
my chunks
{ "name" : "foo", "partitioned" : true,
"primary" : "localhost:30002",
"sharded" : { "foo.foo" : { "key" : { "_id" : 1 }, "unique" : false } },
"_id" : ObjectId("4bd9ae60c0302e394c6844b7") }
my chunks
foo.foo { "_id" : { $minKey : 1 } } -->> { "_id" : { $maxKey : 1 } }
on : localhost:30002 { "t" : 1272557259000, "i" : 1 }发布于 2020-05-19 21:29:29
如果您只是想检查您是否连接到了分片集群:可以使用db.isMaster()来检测您是否连接到了分片路由器(mongos)。
如果db.isMaster().msg为"isdbgrid",则表示您已连接到分片实例。
db.isMaster()可以在没有身份验证的情况下运行。
为了检查分片的详细信息,sh.status()也可以工作,它的输出与db.printShardingStatus();的工作相同。
https://stackoverflow.com/questions/4612835
复制相似问题