定义
- sh.addShard(<url>)
- 将分分片副本集添加到分片集群。 此方法必须在 - mongos实例上运行。- 重要- mongosh 方法- 本页面提供 - mongosh方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。- 有关数据库命令,请参阅 - addShard命令。- 如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。 - sh.addShard()方法具有以下参数:Parameter类型说明- host- 字符串 - 分片副本集至少一个成员的副本集名称、主机名和端口。任何其他副本集节点主机名都必须以逗号分隔。 例如: - <replica_set>/<hostname><:port>,<hostname><:port>, ... - sh.addShard()方法具有以下原型形式:- sh.addShard("<replica_set>/<hostname><:port>") - 警告- mongos针对- addShard命令及其辅助- sh.addShard()使用- "majority"。
兼容性
此方法可用于以下环境中托管的部署:
- MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务 
重要
M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。
- MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本 
- MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本 
Considerations
均衡
将分片添加到分片集群时,会影响所有现有分片collection的集群分数据块之间的数据段平衡。负载均衡器将开始迁移数据块,以便集群实现平衡。有关更多信息,请参阅集群负载均衡器。
数据块迁移可能会对磁盘空间产生影响,因为源分片默认会自动存档迁移的文档。有关详细信息,请参阅moveChunk目录。
隐藏成员
重要
不能将隐藏节点包含在提供给 sh.addShard() 的种子列表中。
例子
要添加分片,请指定副本集的名称以及副本集至少一个成员的主机名作为种子。 如果指定其他主机名,则所有主机名都必须是同一副本集的成员。
以下示例添加了一个名为repl0的副本集并指定了该副本集的一个成员:
sh.addShard("repl0/mongodb3.example.net:27327")