文档菜单
文档首页
/
MongoDB 手册
/ /

向集群添加分片

本页内容

  • 考虑因素
  • 向集群添加分片

您在创建集群后或在需要向集群添加容量时向分片集群添加分片。如果您尚未创建分片集群,请参阅部署自托管分片集群。

所有分片必须是副本集

当你向分片集群添加一个分片时,会影响现有分片集合中各个分片之间 数据块 的平衡。平衡器将开始迁移数据块,以便集群达到平衡。更多信息请参阅 平衡器内部机制

在向集群添加分片时,始终确保集群有足够的容量来支持平衡集群所需的迁移,而不会影响合法的生产流量。

如果在集群执行DDL操作(如修改集合的操作,例如 reshardCollection)时添加分片,则添加分片的操作将在并发DDL操作完成后执行。

您通过连接到一个 mongos 实例来与分片集群交互。

  1. mongosh,连接到 mongos 实例。例如,如果 mongosmongos0.example.net27017 端口上可访问,则执行以下命令

    mongosh --host mongos0.example.net --port 27017
  2. 使用 sh.addShard() 方法向集群添加分片副本集,如下例所示。为每个分片分别发出 sh.addShard()。指定副本集的名称和集成员。

    注意

    可选

    您也可以使用数据库命令 addShard,该命令允许您指定分片的名字和最大大小。如果您不指定这些,MongoDB 将自动分配名字和最大大小。要使用数据库命令,请参阅 addShard.

    以下示例说明了如何使用 sh.addShard():

    要添加一个名为 rs1 的分片副本集,其中成员运行在 mongodb0.example.net27018 端口上,请执行以下命令

    sh.addShard( "rs1/mongodb0.example.net:27018" )

    注意

    迁移块到新的分片可能需要一些时间。

返回

查看集群配置