检查mongodb设置的配置

时间:2014-11-17 06:22:17

标签: mongodb sharding mongo-shell

我已经为集群环境设置了mongodb。我的配置服务器和路由器在一台机器上运行,而分片在三台不同的机器上运行。我想知道是否有任何可以在终端上运行的命令(在其上运行configsvr和路由器),它将显示所有routername,configserver(与之关联),其他分片数据库(与之关联)。

为了简化它。

假设我运行mycommand /段代码,它会显示。

router1---> configserver1----> Shardeddb1
                         ----> Shardeddb2
                         -----> shardeddb3

修改以使其更清晰。

我的router1和configserver1在单机上运行(比如ip 19.0.0.123),Shardeddb1(比如ip 19.0.0.124),Shardeddb2(比如ip 19.0.0.125),Shardeddb3(比如ip 19.0.0.126)。

我想将Shardeddb1作为主要内容,将(Shardeddb2,Shardeddb3)作为辅助内容。如果我运行sh.status();它向我显示详细信息,但不显示哪个数据库属于哪台机器。那么有没有可以向我展示更多细节的脚本?

sharding version: {
    "_id" : 1,
    "version" : 4,
    "minCompatibleVersion" : 4,
    "currentVersion" : 5,
    "clusterId" : ObjectId("545b632e9be3f019d6ef788f")
}
shards:
    {  "_id" : "ps1",  "host" : "ps1/19.0.0.123:27017","draining" : true }
    {  "_id" : "ps2",  "host" : "ps2/19.0.0.124:27017" }
    {  "_id" : "shard0000",  "host" : "19.0.0.125:27017" }
    {  "_id" : "shard0001",  "host" : "19.0.0.126:27017" }
databases:
    {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
    {  "_id" : "test",  "partitioned" : true,  "primary" : "shard0000" }
    {  "_id" : "demo",  "partitioned" : true,  "primary" : "shard0000" }
    {  "_id" : "db",  "partitioned" : false,  "primary" : "ps1" }
    {  "_id" : "mongotestDB",  "partitioned" : true,  "primary" : "ps1" }
            mongotestDB.logcoll
                    shard key: { "id" : 1 }
                    chunks:
                            shard0000       4
                            shard0001       9
                            ps2     7
                            ps1     5
                    too many chunks to print, use verbose if you want to force print

1 个答案:

答案 0 :(得分:0)

由于您的图表另有说明:

  1. 您可以拥有1个或3个配置服务器。
  2. 始终 您的mongos个实例的configdb参数的完全字符串相同。此字符串必须以相同的顺序保存所有配置服务器。 否则,您可能会面临元数据损坏的风险。
  3. 所有配置服务器和mongos都需要能够连接到集群中的所有节点并由其连接。
  4. 对群集进行概述的最简单方法是免费MongoDB Management Service监控。
  5. 只要您密切注意负载,就可以在同一台计算机上运行mongos'和配置服务器。如果事情变得很糟糕,并且配置服务器因更新元数据而导致延迟,因为mongos消耗了所有IO,您可能会使事情变得更糟。如果块拆分延迟(并且它们更有可能在高负载下),这可能会导致JumboChunks(必须手动拆分) - 直到完成 - 无法迁移。因此,在配置服务器上运行mongos实例是一个非常糟糕的想法,imvho。一个更好的解决方案是让mongos实例在应用服务器上运行,每个实例一个。