问题现象
mongodb分片集群指定片键删除了一个collection,再次为这个collection创建片键的时候,会报错
{
"code" : 20,
"ok" : 0,
"errmsg" : "sharding already enabled for collection dbname.collection_201807"
}
解决办法
解决办法就是在config库里面删除这个collection相关的信息,主要涉及到的collection表有locks。
解决办法如下:
use config;
db.collections.remove({_id:'dbname.collection_201807'});
db.chunks.remove({ns:'dbname.collection_201807'});
db.locks.remove({_id:'dbname.collection_201807'}); //此句可能不需要执行
use admin;
db.adminCommand("flushRouterConfig");