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 } )
详情请参阅降级功能兼容性版本。