向集群添加分片
MongoDB5.0 已于 10 月2024 结束生命周期。不再支持此版本的文档。要升级5.0 部署,请参阅 MongoDB6 。0 升级程序。
您可以在创建分片分片集群后或需要增加集群容量时向其添加分集群。 如果您尚未创建分片分片集群,请参阅部署自管理分片集群。
所有分片必须是副本集。
Considerations
均衡
将分片添加到分片集群时,会影响所有现有分片collection的集群分数据块之间的数据段平衡。负载均衡器将开始迁移数据块,以便集群实现平衡。有关更多信息,请参阅集群负载均衡器。
数据段迁移可能会对磁盘空间产生影响,因为源分片默认会自动存档迁移的文档。 有关详细信息,请参阅 moveChunk
目录。
容量规划
向集群添加分片时,一定要确保集群有足够的容量来支持均衡集群所需的迁移,同时不影响合法的生产流量。
向集群添加分片
可通过连接到 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" ) 注意
数据段迁移到新分片可能需要一些时间。