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

addShard

在此页面上

  • 定义
  • 兼容性
  • 语法
  • Considerations
  • 示例
addShard

将分分片副本集添加到分片集群。

提示

mongosh 中,还可以通过 sh.addShard() 辅助方法运行此命令。

辅助方法对 mongosh 用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。

此命令可用于以下环境中托管的部署:

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

注意

MongoDB Atlas不支持此命令。请参阅修改Atlas分片集群以在Atlas 集群中添加或删除分片、

该命令具有以下语法:

db.adminCommand(
{
addShard: "<replica_set>/<hostname><:port>",
maxSize: <size>,
name: "<shard_name>"
}
)

该命令包含以下字段:

字段
类型
说明

addShard

字符串

分片副本集至少一个成员的副本集名称、主机名和端口。任何其他副本集节点主机名都必须以逗号分隔。 例如:

<replica_set>/<hostname><:port>,<hostname><:port>, ...

maxSize

整型

可选。 分片的最大大小(以 MB 为单位)。 如果将maxSize设置为0 ,则 MongoDB 不限制分片的大小。

name

字符串

可选。 分片的名称。 如果未指定,MongoDB 会自动提供一个唯一名称。

addShard命令将分分片配置信息存储在配置数据库中。 使用admin数据库时,始终运行addShard

如果您的计算机具有不同的磁盘容量,或者您想限制某些分片的数据量,请指定maxSizemaxSize当在分片上运行 totalSizelistDatabasesmaxSize返回的 超过 的值时, 约束会阻止 负载均衡器 将数据块迁移到分片。

添加到分片集群的分片必须为空。

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

数据块迁移可能会对磁盘空间产生影响,因为源分片默认会自动存档迁移的文档。有关详细信息,请参阅moveChunk目录。

重要

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

以下命令将副本集添加为分片:

use admin
db.runCommand( { addShard: "repl0/mongodb3.example.net:27327"} )

警告

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

后退

abortReshardCollection