enableSharding
定义
enableSharding
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>" } )
您只能从enableSharding
admin
实例对 数据库运行mongos
命令。
命令字段
该命令接受以下字段:
字段 | 类型 | 说明 |
---|---|---|
字符串 | 要使用的数据库。 如果数据库不存在,则会创建该数据库。 | |
字符串 | 可选。 数据库的主分片分片。 它是数据库中所有未分片集合的默认分片片。 警告:一般来说,您不应指定主分片。 允许集群选择主分片分片。 |
返回:
该命令返回包含操作状态的文档。
行为
写关注
mongos
将"majority"
用于enableSharding
命令及其助手sh.enableSharding()
。
主分片
一般来说,不需要在命令中指定 primaryShard。相反,允许负载均衡器选择主分片。
但是,如果您在命令中为 数据库 指定了 primaryShard ,并且该数据库已经使用其他主分片启用了分片,则该操作将返回错误,并且数据库的主分片将保持不变。要更改数据库的主分片,请改用movePrimary
。
例子
从mongos
运行以下命令,创建shardTest
数据库:
db.adminCommand( { enableSharding: "shardTest" } )