文档菜单
文档首页
/
MongoDB 手册
/ /

配置分片

本页

  • 用例
  • 行为
  • 入门
  • 了解更多

从 MongoDB 8.0 开始,您可以为配置服务器配置,以便除了通常的分片集群元数据外,还可以存储您的应用程序数据。mongod 提供配置服务器和分片服务器功能的节点称为配置分片。一个作为独立 --configsvr 运行而不具有分片服务器功能的 mongod 节点称为专用 配置服务器。

分片集群必须有一个配置服务器,但它可以是配置分片(嵌入式配置服务器)或专用配置服务器。使用配置分片可以减少所需的节点数量并简化您的部署。配置分片集群也称为嵌入式配置服务器集群。您不能为多个分片集群使用相同的配置服务器。

如果您的集群有3个或更少的分片,可以考虑使用配置分片。

如果您的应用程序对可用性和弹性要求较高,请考虑部署专用配置服务器。专用配置服务器为关键集群操作提供隔离、专用资源和一致的性能。

如果您满足以下条件之一或多个,应使用专用配置服务器:

  • 您计划使用超过3个 分片。

  • 您计划使用 时间序列集合可查询加密 集合。

  • 您计划使用可查询备份(本地)。

在嵌入式配置服务器集群中,配置分片将用于存储集群元数据和用户数据。它有助于降低分片集群部署的复杂性。

您可以在配置分片中存储分片和非分片集合数据。它具有分片的所有属性,同时充当配置服务器。

要确认分片集群使用配置分片,请在连接到mongos时针对admin数据库运行listShards命令,并检查输出中_id设置为"config"的文档。如果listShards输出不包含_id设置为"config"的文档,则集群不使用配置分片。

以下示例运行了listShards命令并尝试找到_id设置为"config"的文档。

db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")

在此示例中,返回的文档的_id设置为"config",这证实了该集群使用配置分片。

{
_id: "config",
host: "configRepl/localhost:27018",
state: 1,
topologyTime: Timestamp({ t: 1732218671, i: 13 }),
replSetConfigVersion: Long('-1')
}

要配置一个专用配置服务器作为配置分片运行,请运行transitionFromDedicatedConfigServer命令。

要配置配置分片作为专用配置服务器运行,请运行transitionToDedicatedConfigServer命令。

返回

删除哈希分片键索引