mongos> sh.shardCollection("mf.mb_device_login_log",{"_plat" : 1,"_uid" : 1,"_tm" : 1})
{ "code" : 20, "ok" : 0, "errmsg" : "sharding not enabled for db mf" }
查看索引,索引存在
mongos> db.mb_device_login_log.getIndexes()
[
{
"v" : 2,
"key" : {
"_plat" : 1,
"_uid" : 1,
"_tm" : 1
},
"name" : "_plat_1__uid_1__tm_1",
"ns" : "mf.mb_device_login_log"
}
]
对db启用分片,分片已经存在
mongos> sh.enableSharding("mf")
{
"code" : 23,
"ok" : 0,
"errmsg" : "sharding already enabled for database mf"
}
问题分析,怀疑是上次分片后,配置数据没有及时刷新
刷新配置数据
mongos> db.adminCommand("flushRouterConfig")
{ "flushed" : true, "ok" : 1 }
这次执行分片成功
mongos> sh.shardCollection("mf.mb_device_login_log",{"_plat" : 1,"_uid" : 1,"_tm" : 1})
{ "collectionsharded" : "mf.mb_device_login_log", "ok" : 1 }
mongos>