定义
8.0版本新增。
从MongoDB 8.0开始,您可以:
配置一个配置服务器,除了存储通常的分片集群元数据之外,还用于存储应用程序数据。存储应用程序数据的配置服务器称为配置分片。
在配置分片和专用配置配置服务器之间转换配置服务器。
集群需要配置服务器,但它可以是配置分片,而不是专用的配置服务器。 使用配置分片可减少所需节点的数量,并可简化部署。
配置分片的费用低于专用配置服务器,因为专用配置服务器作为其自身的副本集运行。配置分片将配置服务器角色组合到现有分片的副本集中,因此集群需要一个副本集而不是两个副本集。在分片数量较少的情况下,使用配置分片对性能没有可测量的影响。专用配置服务器可以将集群元数据与应用程序数据隔离,这是某些功能所需的。要了解哪种部署适合您的集群,请参阅 配置分片使用案例。
transitionFromDedicatedConfigServer命令将专用配置服务器为作为配置分片运行。
在运行transitionFromDedicatedConfigServer之前,请连接到mongos并使用管理员数据库。
分片分片集群的featureCompatibilityVersion必须至少设立为8.0 。
语法
命令语法:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )
行为
transitionFromDedicatedConfigServer 命令将配置服务器添加为集群中的分片。 在内部,transitionFromDedicatedConfigServer 运行 addShard 命令。
您可以通过使用以下方法之一来确认分片集群是否使用了配置分片:
运行
mongosh中的sh.isConfigShardEnabled()方法。如果sh.isConfigShardEnabled()输出包含enabled: true,则集群使用配置分片。如果输出包含enabled: false,则集群不使用配置分片。连接到 时,对 数据库运行
mongoslistShards命令,并检查输出中是否存在将admin_id设立为 的文档。"config"如果listShards输出不包含将_id设立为"config"的文档,则集群不使用配置分片。
如果必须将特征兼容性版本降级到8.0以下,请先运行transitionToDedicatedConfigServer命令。 有关降级的详细信息,请参阅降级功能兼容性版本。
访问控制
如果启用了访问权限控制,则transitionFromDedicatedConfigServer 命令需要对transitionFromDedicatedConfigServer 集群 执行 授权动作:
{ resource: { cluster : true }, actions: [ "transitionFromDedicatedConfigServer" ] }
clusterManager角色具有transitionFromDedicatedConfigServer授权动作,可以分配给用户。
以下示例将clusterManager角色分配给名为testUser的用户:
db.grantRolesToUser( "testUser", [ "clusterManager" ] )
例子
以下示例将专用配置服务器配置为作为配置分片运行:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )