addShard

在本页面

Definition

连接到mongos实例时运行addShard。该命令采用以下形式添加分片副本集:

{ addShard: "<replica_set>/<hostname><:port>", maxSize: <size>, name: "<shard_name>" }

该命令包含以下字段:

Field Type Description
addShard string 副本集名称,主机名和分片副本集至少一个成员的端口。任何其他副本集成员主机名都必须用逗号分隔。例如:

<replica_set>/<hostname><:port>,<hostname><:port>, ...
maxSize 整数 可选。分片的最大大小(以兆字节为单位)。如果将maxSize设置为0,则 MongoDB 不会限制分片的大小。
name 字符串 可选。分片的名称。如果未指定,MongoDB 会自动提供一个唯一的名称。

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

当您的计算机具有不同的磁盘容量时,或者要限制某些分片上的数据量时,请指定maxSize。当在分片上运行listDatabases返回的totalSize超过maxSize的值时,maxSize约束防止balancer将块迁移到分片。

Considerations

Balancing

将分片添加到分片群集时,会影响所有现有分片集合的群集中各分片中chunks的平衡。平衡器将开始迁移块,以便群集将达到平衡。有关更多信息,请参见Cluster Balancer

在 2.6 版中进行了更改:块迁移可能会影响磁盘空间。从 MongoDB 2.6 开始,源碎片默认情况下会自动存档迁移的文档。有关详细信息,请参见moveChunk directory

Hidden Members

Important

您不能在提供给addShard的种子列表中包括hidden member

Examples

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

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

Warning

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

首页