在我们的生产系统中,我们使用 -
进行分片群集2个分片(每个分片是主要+辅助+仲裁者的副本集)
3个配置服务器
4个mongoS实例
几天前,我们遇到了一个网络愤怒,其中一个辅助站无法连接到相应的主站。这个问题在一段时间内得到了解决,但mongo平衡器从那个时间点开始停滞不前。
所有数据都被移动到一个分片,并且没有传输任何内容。在mongoS日志中,我们监视锁是由mongoS实例获取的,但直到日期才发布
configsvr> db.locks.find({状态:2})。漂亮()
{
"_id" : "balancer",
"process" : "mongosHost3:27017:1462857366:-506678190",
"state" : 2,
"ts" : ObjectId("57c29902a443254e2d8e1b27"),
"when" : ISODate("2016-08-28T07:55:46.350Z"),
"who" : "mongosHost3:27017:1462857366:-506678190:Balancer:37654778",
"why" : "doing balance round"
}
我检查了这台MongoS服务器的mongo日志,并在最近两天的日志中发现了这种情况。
I SHARDING [LockPinger] cluster confserv_1.xyz.com:27017,confserv_2.xyz.com:27017,confserv_3.xyz.com:27017在2016-08-30T06:23:31.483 + 0530成功通过分布式锁定'confserv_1.xyz.com:27017,confserv_2.xyz.com:27017,confserv_3.xyz.com:27017/mongosHost3:27017:1462857366:506678190',睡眠30000ms
这是最近两天。
我们在同步的所有配置服务器上检查了DBHash。
你能帮忙解决为什么会出现这个问题,我们可以解决它。