Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

sh.addShard()

在此页面上

  • 定义
  • 兼容性
  • Considerations
  • 例子
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>")

警告

请勿使用localhost作为主机名,除非您的配置服务器也在localhost上运行。

mongos从官方 .deb 安装的.rpm 默认情况下,软件包将bind_ip配置设置为127.0.0.1

mongos 针对 addShard 命令及其辅助 sh.addShard() 使用 "majority"

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。

将分片添加到分片集群时,会影响所有现有分片集合的集群分片之间的数据段平衡。负载均衡器将开始迁移数据段,以便集群实现平衡。有关更多信息,请参阅负载均衡器内部结构

重要

不能将隐藏节点包含在提供给 sh.addShard() 的种子列表中。

如果您在集群执行 DDL 操作(修改集合,如reshardCollection的操作)时运行sh.addShard ,则sh.addShard仅在并发 DDL 操作完成后才会执行。

要添加分片,请指定副本集的名称以及副本集至少一个成员的主机名作为种子。 如果指定其他主机名,则所有主机名都必须是同一副本集的成员。

以下示例添加了一个名为repl0的副本集并指定了该副本集的一个成员:

sh.addShard("repl0/mongodb3.example.net:27327")

后退

sh.abortUnshardCollection