当我尝试启用碎片时...我收到以下错误......
use admin
switched to db admin
> db.runCommand( { enablesharding : "sgserver" } )
{ "ok" : 1 }
> db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )
"ok" : 0,
"errmsg" : "please create an index over the sharding key before sharding."
> db.sgserver.ensureIndex({"fileGUID": 1})
> db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )
"ok" : 0,
"errmsg" : "please create an index over the sharding key before sharding."它坚持我创建一个索引,但如果我尝试创建一个索引,我会得到上面提到的错误。
有人能帮我解决这个问题吗?
发布于 2011-01-08 07:18:06
sgserver集合是否在admin数据库中?
我没有看到在执行ensureIndex()之前切换到正确数据库的命令。代码可能如下所示:
db.runCommand( { enablesharding : "sgserver" } );
use sgserver;
db.sgserver.ensureIndex({"fileGUID": 1});
db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )https://stackoverflow.com/questions/4600971
复制相似问题