2011-01-05 82 views
0

当我试图使碎片......我收到以下错误创建索引........无法同时分片

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." 

它的坚持,我创建一个索引,但如果我尝试创建一个索引,我收到上述错误。

任何人都可以帮我解决这个问题吗?

回答

2

数据库admin内的sgserver集合?

在您执行ensureIndex()之前,我看不到切换到正确数据库的命令。代码应该看起来像这样:

db.runCommand({ enablesharding : "sgserver" }); 
use sgserver; 
db.sgserver.ensureIndex({"fileGUID": 1}); 
db.runCommand({ shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} }) 
+0

感谢您的回复......... – SampathKumar 2011-01-13 05:28:37