文档菜单
文档首页
/
MongoDB 手册
/ / /

addShard

本页内容

  • 定义
  • 兼容性
  • 语法
  • 注意事项
  • 示例
addShard

向分片集群添加一个分片副本集分片集群.

提示

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

辅助方法对于mongosh用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要便利性或需要额外的返回字段的情况下,请使用数据库命令。

此命令在以下环境中的部署中可用

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

重要

此命令不支持无服务器实例。有关更多信息,请参阅不受支持的命令。

命令有以下语法

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

注意

从版本 6.2 开始,MongoDB 从 addShard 命令中删除了 maxSize 字段。因此

  • 使用包含 maxSize 字段的 addShard 返回一个 InvalidOptions 错误。

  • 新文档不再包含 shards 集合中的 maxSize 字段。

  • 任何现有的 maxSize 字段条目都将被忽略。

命令包含以下字段

字段
类型
描述
addShard
string

至少一个分片副本集的副本集名称、主机名和端口号。任何额外的副本集成员主机名必须以逗号分隔。例如

<replica_set>/<hostname><:port>,<hostname><:port>, ...
name
string
可选。分片的名称。如果没有指定,MongoDB 自动提供一个唯一名称。

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

当你向分片集群添加一个分片时,会影响现有分片集合中所有分片的块平衡。均衡器将开始迁移块以实现集群平衡。有关更多信息,请参阅。请参阅均衡器内部机制

重要

您不能将一个隐藏成员包含在提供给addShard的种子列表中。

如果在集群执行DDL操作(例如修改集合的操作,如reshardCollection)时添加分片,则addShard命令只有在并发DDL操作完成后才会执行。

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

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

警告

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

返回

abortUnshardCollection