如何验证分片?

问题描述 投票:3回答:3

我正在尝试对MongoDB进行分片。我已经完成了分片配置,但是我不确定如何验证分片是否起作用。

我如何检查我的数据是否被分片?是否有查询来验证/验证分片?

mongodb sharding
3个回答
5
投票

MongoDB在这里有有关分片的详细文档...

http://www.mongodb.org/display/DOCS/Sharding+Introduction

为了回答您的问题(我想),请参阅config Servers上的部分...

每个配置服务器都有完整的副本所有块信息。两相commit用于确保配置数据的一致性在配置服务器中。

基本上,这是配置服务器的工作,确保所有内容都被分片... 正确

也有一些系统集合,您可以query ...

db.runCommand({listhards:1});

也在下面的prez中提供了很多帮助...

http://www.slideshare.net/mongodb/mongodb-sharding-internals

http://www.10gen.com/video/mongosv2010/sharding


14
投票

您还可以在mongos路由器上执行一个简单的命令:

> use admin
> db.printShardingStatus();

它应该输出有关[s0]中提到的分片,分片的db和分片的集合的信息

mongodb documentation

0
投票

[如果您只想检查是否与分片集群相连: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 } 可用于检测您是否已连接到分片路由器(db.isMaster())。

如果mongos是“ isdbgrid”,则您已连接到分片实例。

[db.isMaster().msg可以不通过身份验证就运行。

为了检查分片的细节,db.isMaster()也有效,其输出与sh.status()相同。

© www.soinside.com 2019 - 2024. All rights reserved.