enableSharding
定义
enableSharding
注意
已更改在版本6.0.
从MongoDB 6.0版本开始,此命令不再需要用于分片一个集合。
命令
enableSharding
显式创建一个数据库。提示
在
mongosh
中,此命令也可以通过sh.enableSharding()
辅助方法执行.辅助方法对
mongosh
用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便性或需要额外的返回字段的情况下,请使用数据库命令。
兼容性
此命令在以下环境中可用
MongoDB Atlas:云中MongoDB部署的完全托管服务
重要
此命令不支持在无服务器实例上使用。有关更多信息,请参阅不受支持的命令。
MongoDB Enterprise:基于订阅的、自我管理的MongoDB版本
MongoDB Community:源代码可用的、免费使用并自我管理的MongoDB版本
语法
该命令的语法如下
推荐。指定要创建的数据库
db.adminCommand( { enableSharding: "<database name>" } ) 可选地,您可以在命令中包含主分片指定,尽管这不推荐
db.adminCommand( { enableSharding: "<database name>", primaryShard: "<shard name>" } )
您只能在从 mongos
实例中运行 enableSharding
命令到 admin
数据库。
命令字段
命令包含以下字段
字段 | 类型 | 描述 |
---|---|---|
字符串 | 您想使用的数据库。如果不存在,则创建数据库。 | |
字符串 | 可选。数据库的主分片。它是数据库中所有未分片集合的默认分片。 警告:通常,您不应该指定主分片。让集群选择主分片。 |
返回值
该命令返回包含操作状态的文档。
行为
写入关注
mongos
使用 "majority"
作为 enableSharding
命令及其辅助函数 sh.enableSharding()
的写入关注。
主分片
通常,您不需要在命令中指定 primaryShard。相反,允许平衡器选择主分片。
但是,如果您在命令中指定了 primaryShard 并为 数据库 设置了不同的主分片,则操作将返回错误,并且数据库的主分片将保持不变。要更改数据库的主分片,请使用 movePrimary
。
示例
以下命令,从 mongos
运行,创建 shardTest
数据库
db.adminCommand( { enableSharding: "shardTest" } )