MongoDB实例可以有不同的角色:
我知道db.serverStatus()
可用于查看实例是否为路由器,process
值为mongos
。
但对于配置服务器,仲裁器和数据节点,process
值为mongod
。
是否有一种区分这些实例类型的简单方法?
答案 0 :(得分:2)
我想引起对这个问题的一个特别重要的问题的关注:分片和水平维度(数据分发到的几个重复数据集)和replicaset是一个高可用性解决方案,它由不同mongod节点的组合表示! / p>
所以你实际上想要弄清楚的是:
对于replicaSet,您可能感兴趣的是每个节点角色。您可以轻松获取信息,而无需连接到replicaset的所有节点,只需运行命令:
db.isMaster()
通过这个,您将获得每个成员的节点成员和角色。
首先,对于分片节点成员,您不应该尝试直接连接到配置服务器。这些是用于管理块,块拆分和其他配置数据的分布,仅与分片群集功能相关。避免使用这些ip从您的应用程序连接。
因此,如果您希望清楚地了解哪些成员构成了分片群集,您有多少分片等,则需要运行命令:
db.printShardStatus()
或
sh.status()
请查看文档here
干杯, Ñ