Docs 主页 → 开发应用程序 → MongoDB Manual
addShard
定义
addShard
将分片副本集添加到分片集群。
提示
在
mongosh
中,该命令也可以通过sh.addShard()
辅助方法运行。助手方法对于
mongosh
用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。addShard
连接到 实例时运行mongos
。该命令采用以下形式添加分片副本集:{ 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
。如果您的计算机具有不同的磁盘容量,或者您想限制某些分片的数据量,请指定
maxSize
。maxSize
当在分片上运行totalSize
listDatabases
maxSize
返回的 超过 的值时, 约束会阻止 负载均衡器 将数据块迁移到分片。
考虑因素
均衡
将分片添加到分片集群时,会影响所有现有分片collection的集群分数据块之间的数据段平衡。负载均衡器将开始迁移数据块,以便集群实现平衡。有关更多信息,请参阅集群负载均衡器。
数据块迁移可能会对磁盘空间产生影响,因为源分片默认会自动存档迁移的文档。有关详细信息,请参阅moveChunk
目录。
隐藏成员
举例
以下命令将副本集添加为分片:
use admin db.runCommand( { addShard: "repl0/mongodb3.example.net:27327"} )
警告
请勿使用localhost
作为主机名,除非您的配置服务器也在localhost
上运行。