对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

transitionToDedicatedConfigServer(数据库命令)

transitionToDedicatedConfigServer

8.0版本新增。:

从MongoDB 8.0开始,您可以:

  • 配置一个配置服务器,除了存储通常的分片集群元数据之外,还用于存储应用程序数据。存储应用程序数据的配置服务器称为配置分片

  • 在配置分片和专用配置配置服务器之间转换配置服务器。

集群需要配置服务器,但它可以是配置分片,而不是专用的配置服务器。 使用配置分片可减少所需节点的数量,并可简化部署。

配置分分片的成本低于专用配置服务器,因为专用配置服务器作为自己的副本集运行。配置分分片将配置服务器角色合并到现有分片的副本集中,因此您的集群需要一个副本集,而不是两个。在分片数量较少的情况下,使用配置分片不会对性能产生可测量的影响。专用配置服务器将集群元数据与应用程序数据隔离,这是某些功能所需要的。要学习;了解哪种部署适合您的集群,请参阅配置分片使用案例。

transitionToDedicatedConfigServer命令将配置分片配置为作为专用配置服务器分片。 该命令使负载均衡器优先将数据段从配置分片移动到分片集群的其他分片。

在运行transitionToDedicatedConfigServer之前,请连接到mongos并使用管理员数据库。

分片分片集群的featureCompatibilityVersion必须至少设立为8.0

命令语法:

db.adminCommand( {
transitionToDedicatedConfigServer: 1
} )

transitionToDedicatedConfigServer命令将应用程序数据从配置分片移动到分片集群的其他分片,其方式与removeShard命令移动数据的方式相同。

transitionToDedicatedConfigServer在内部运行removeShard命令。 transitionToDedicatedConfigServer返回与removeShard相同的响应。 数据移动成功后的响应包含state: "completed" 。 有关完整的响应详细信息和示例,请参阅removeShard 示例。 在运行transitionToDedicatedConfigServer之前查看removeShard文档,了解它可能如何影响您的部署。

如果运行transitionToDedicatedConfigServer两次,并且分分片数据当前正在移动到其他分片,则第二次运行transitionToDedicatedConfigServer会返回数据移动的当前状态。 transitionToDedicatedConfigServer返回与removeShard相同的响应。

transitionToDedicatedConfigServer完成数据移动后,配置服务器是专用配置服务器,而不再是配置分片。

如果启用了访问权限控制,则transitionToDedicatedConfigServer 命令需要对transitionToDedicatedConfigServer 集群 执行 授权动作:

{
resource: { cluster : true },
actions: [ "transitionToDedicatedConfigServer" ]
}

clusterManager角色具有transitionToDedicatedConfigServer授权动作,可以分配给用户。

以下示例将clusterManager角色分配给名为testUser的用户:

db.grantRolesToUser(
"testUser",
[ "clusterManager" ]
)

以下示例将配置分片配置为作为专用配置服务器分片:

db.adminCommand( {
transitionToDedicatedConfigServer: 1
} )

详情请参阅降级功能兼容性版本。