1. 程式人生 > >mognodb 分片出現{ "code" : 20, "ok" : 0, "errmsg" : "sharding not enabled for db " }

mognodb 分片出現{ "code" : 20, "ok" : 0, "errmsg" : "sharding not enabled for db " }

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>