问题现象
MongoDB使用shard模式,有三个分片,项目上线一段时间后,有了数据量,发现数据分布不均匀,只存在了rs02分片上。
登录到mongos节点 查看分片状态:
mongos> sh.status()
输出截图如下,rs02分片上有18chunks,rs03上1个,rs01上没有。即数据大部分存在第二个分片rs02上。
排查问题:
当时创建分片时确实对表开启了分片,
查看日志:查看rs02的日志发现以下提示信息并有解决办法,应该是在创建分片时有人手动通过分片的端口即27001 创建了表handleResultMongo,导致MongoDB认为有重名的表但是UUID不同,所以无法均衡数据
在分片rs01 上查看确实没有数据
解决方式
删除
rs01:PRIMARY> db.handleResultMongo.drop()
mongo是auth 注意了. 要提前在share的副本级里面创建好帐号, 这样才能登录副本级进行执行以上操作