sh.addShard()
定义
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
均衡
将分片添加到分片集群时,会影响所有现有分片集合的集群分片之间的数据段平衡。负载均衡器将开始迁移数据段,以便集群实现平衡。有关更多信息,请参阅负载均衡器内部结构。
隐藏成员
重要
不能将隐藏节点包含在提供给 sh.addShard()
的种子列表中。
DDL 操作
如果您在集群执行 DDL 操作(修改集合,如reshardCollection
的操作)时运行sh.addShard
,则sh.addShard
仅在并发 DDL 操作完成后才会执行。
例子
要添加分片,请指定副本集的名称以及副本集至少一个成员的主机名作为种子。 如果指定其他主机名,则所有主机名都必须是同一副本集的成员。
以下示例添加了一个名为repl0
的副本集并指定了该副本集的一个成员:
sh.addShard("repl0/mongodb3.example.net:27327")