向集群添加分片
您在创建集群后或在需要向集群添加容量时向分片集群添加分片。如果您尚未创建分片集群,请参阅部署自托管分片集群。
所有分片必须是副本集。
考虑因素
平衡
当你向分片集群添加一个分片时,会影响现有分片集合中各个分片之间 数据块 的平衡。平衡器将开始迁移数据块,以便集群达到平衡。更多信息请参阅 平衡器内部机制。
容量规划
在向集群添加分片时,始终确保集群有足够的容量来支持平衡集群所需的迁移,而不会影响合法的生产流量。
DDL 操作
如果在集群执行DDL操作(如修改集合的操作,例如 reshardCollection
)时添加分片,则添加分片的操作将在并发DDL操作完成后执行。
向集群添加分片
您通过连接到一个 mongos
实例来与分片集群交互。
在
mongosh
,连接到mongos
实例。例如,如果mongos
在mongos0.example.net
的27017
端口上可访问,则执行以下命令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" ) 注意
迁移块到新的分片可能需要一些时间。