首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建分片:没有为数据库启用分片

无法创建分片:没有为数据库启用分片
EN

Stack Overflow用户
提问于 2013-11-12 08:53:21
回答 2查看 4.8K关注 0票数 1

我正在尝试基于分片键的分片收集:查看帮助,我发现我可以使用sh.shardCollection("database.collection", myKey)完成此操作

但是当我这样做的时候,我会收到这样的信息

代码语言:javascript
复制
{ "ok" : 0, "errmsg" : "sharding not enabled for db" }

我启动了mongod --configsvrmongod --shardsvr,所以我认为我已经启用了分片。你知道我该怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2013-11-12 09:08:06

实际上,一切都很简单。所有你需要做的就是为你的数据库启用分片(是的,它是一种写在错误msg中的)。

您可以使用sh.enableSharding(database)实现这一点

要查看用于分片的命令,您可以执行sh.help(),这将输出命令列表及其描述。在那里你可以找到这个enableSharding。

还要记住,在进行分片之前,你的myKey上需要有indeces (否则你会收到一些关于indeces的错误)。因此,如果您尚未执行此操作-请在使用db.collection.ensureIndex(myKey)之前创建它们

票数 2
EN

Stack Overflow用户

发布于 2019-10-11 06:19:51

例如,这将向生成的_id字段添加一个散列碎片索引和碎片键-不建议使用这个,这只是一个如何启用分片的示例

代码语言:javascript
复制
sh.enableSharding("mydatabase")
use mydatabase
var shardKey = { "_id": "hashed" }
db.customers.createIndex(shardKey)
sh.shardCollection( "mydatabase.customers", shardKey)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19918956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档