我最近将一名新成员提升为 mongo 副本集的主要成员。事情似乎顺利运行了几天,并且没有看到任何问题的任何应用程序症状。然而今天偷看 rs.status() 我注意到它列出了 maintenanceMode -7。我不认为这是可能的,因为它是主要的。我无法在文档中找到有关这意味着什么的任何有用信息。
这是什么意思?
{
"_id" : 26,
"name" : "mongohost5:27032",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 106966,
"optime" : Timestamp(1379627877000, 77),
"optimeDate" : ISODate("2013-09-19T21:57:57Z"),
"maintenanceMode" : -7,
"self" : true
}
运行某些命令时使用维护模式,通常是compact 命令。你在这里遇到的是SERVER-9338中提到的错误,我猜你已经多次对你的节点运行 compact 命令。有一些情况,尤其是在主节点上运行时通常会导致状态更改(即,当紧凑完成时它不是主节点),会导致
maintenanceMode
错误地递减。在撰写此答案时,这已在开发分支中得到修复,并已标记为向后移植,尽管它(还)尚未成为早期版本中发布的目标。在修复发布之前,忽略该值应该是安全的,但我会做一些测试来确认并报告回来。