向集群添加分片
您可以在创建分片集群后,或需要增加集群容量时随时向其添加分片。如果尚未创建分片集群,请参阅部署自管理分片集群。
所有分片必须是副本集。
Considerations
均衡
将分片添加到分片集群时,会影响所有现有分片集合的集群分片之间的数据段平衡。负载均衡器将开始迁移数据段,以便集群实现平衡。有关更多信息,请参阅负载均衡器内部结构。
容量规划
向集群添加分片时,一定要确保集群有足够的容量来支持均衡集群所需的迁移,同时不影响合法的生产流量。
DDL 操作
如果您在集群执行分片操作(修改集合的操作,例如 reshardCollection
)时添加分片,则仅在并发分片操作完成后才会执行添加分片的操作。
向集群添加分片
可通过连接到 mongos
实例与分片集群进行交互。
在
mongosh
中,连接到mongos
实例。 例如,如果可以在mongos0.example.net
的端口27017
上访问mongos
},则发出以下命令:mongosh --host mongos0.example.net --port 27017 使用
sh.addShard()
方法将分片副本集添加到集群,如以下示例所示。为每个分片分别发出sh.addShard()
。指定副本集的名称和副本集的节点。以下示例说明了如何使用
sh.addShard()
添加分片:要添加名为
rs1
的分片副本集(其成员在mongodb0.example.net
的端口27018
上运行),请发出以下命令:sh.addShard( "rs1/mongodb0.example.net:27018" ) 注意
数据段迁移到新分片可能需要一些时间。