我们遇到了辅助问题,并且由于致命断言错误,moveChunk无法在此辅助中复制。主要的mongod在日志中报告了失败(参见下面的日志)但是这些信息似乎从来没有回到mongos / mongoc,因为那些重启。我们已经恢复了失败的辅助节点,并且已经完全重新启动整个集群并且事情是健康的,除了平衡器不会运行因为仍然存在锁定而且我在changelog集合中看到失败的moveChunk只有moveChunk.start条目。我已经查看了日志,我很确定自从我们重新启动集群后没有发生迁移。运行MongoDB 2.6.1
显示moveChunk失败的主要mongod日志: 2015-10-28T00:03:26.616-0400 [migrateThread]即将记录元数据事件:{_ id:“shard10-2015-10-28T04:03:26-5630490e8d918836ed653d66”,服务器:“shard10”,clientAddr:“:27017 “,time:new Date(1446005006616),what:”moveChunk.to“,ns:”prodAB.Instr_2015_10_26_IntervalRecord“,详情:{min:{appName:”AlertsAccumulator“,ts:new Date(1445817600002)},max:{ appName:“CES_GI”,ts:new Date(1445830500005)},第1步,共5步:1,第2步,共5:0,注意:“aborted”}} ... 2015-10-28T00:03:26.616-0400 [migrateThread] SyncClusterConnection连接到[spider:43045] 2015-10-28T00:03:26.617-0400 [migrateThread]警告:无法连接到138.12.88.115:43045,原因:错误号:111连接被拒绝 2015-10-28T00:03:26.617-0400 [migrateThread] SyncClusterConnection连接失败:spider:43045 errmsg:无法连接到服务器spider:43045(xxx),连接尝试失败 ... 2015-10-28T00:03:26.635-0400 [migrateThread]未记录配置更改:shard10-2015-10-28T04:03:26-5630490e8d918836ed653d66无法对服务器蜘蛛进行身份验证:43045,spider2:43045,spider3:43045 2015-10-28T00:03:26.635-0400 [migrateThread]错误:迁移失败:waitForReplication被调用但不再是master 2015-10-28T00:03:26.635-0400 [migrateThread]警告:无需忘记待处理的块[{appName:“AlertsAccumulator”,ts:new Date(1445817600002)},{appName:“CES_GI”,ts:new Date (1445830500005)})因为prodAB.Instr_2015_10_26_IntervalRecord的本地元数据已更改
changelog集合中的条目:
mongos> db.changelog.find({ns: "prodAB.Instr_2015_10_26_IntervalRecord", what: /^moveChunk./, "details.min.appName": "AlertsAccumulator"})
{ "_id" : "shard09-2015-10-28T02:14:41-56302f917c97e85c20d69b55",
"server" : "shard09",
"clientAddr" : "xxx",
"time" : ISODate("2015-10-28T02:14:41.265Z"),
"what" : "moveChunk.start",
"ns" : "prodAB.Instr_2015_10_26_IntervalRecord",
"details" : { "min" : { "appName" : "AlertsAccumulator", "ts" : ISODate("2015-10-26T00:00:00.002Z") },
"max" : { "appName" : "CES_GI", "ts" : ISODate("2015-10-26T03:35:00.005Z") },
"from" : "rs10", "to" : "rs1" } }
答案 0 :(得分:0)
基于我们在MongoDB 2.6.1集群中所做的事情来回答我自己的问题:
我们通过执行mongos:
删除了锁use config
db.locks.remove({'_id': 'balancer'})
我们可以用sh.startBalancer()
看起来更改日志中的额外条目根本不重要。我应该注意到,我们选择禁用某些集合的平衡,我们知道这些集合很快将被删除,并且此时不想承担额外的平衡负担,有关如何禁用特定集合的balacing的更多信息:{{3 }}