如何确定MongoDB服务器类型

时间:2012-10-26 16:13:54

标签: mongodb

MongoDB实例可以有不同的角色:

  • 配置服务器
  • 路由器(mongos)
  • 数据服务器
  • 仲裁服务器(用于副本集)

我知道db.serverStatus()可用于查看实例是否为路由器,process值为mongos。 但对于配置服务器,仲裁器和数据节点,process值为mongod

是否有一种区分这些实例类型的简单方法?

1 个答案:

答案 0 :(得分:2)

我想引起对这个问题的一个特别重要的问题的关注:分片和水平维度(数据分发到的几个重复数据集)和replicaset是一个高可用性解决方案,它由不同mongod节点的组合表示! / p>

所以你实际上想要弄清楚的是:

  • ReplicaSet节点角色
  • Shard Nodes成员

对于replicaSet,您可能感兴趣的是每个节点角色。您可以轻松获取信息,而无需连接到replicaset的所有节点,只需运行命令:

db.isMaster()

通过这个,您将获得每个成员的节点成员和角色。

首先,对于分片节点成员,您不应该尝试直接连接到配置服务器。这些是用于管理块,块拆分和其他配置数据的分布,仅与分片群集功能相关。避免使用这些ip从您的应用程序连接。

因此,如果您希望清楚地了解哪些成员构成了分片群集,您有多少分片等,则需要运行命令:

db.printShardStatus()

sh.status()

请查看文档here

干杯, Ñ