Mongo + Mongoid 异常失败,错误为“不是主”

Tal*_*kly 5 mongodb mongoid mongoid3

我有一个简单的副本集配置如下:

  • mongo1(主要)
  • mongo2(次要)
  • mongo3(仲裁者)

它正常运行了大约一个月,然后我们开始看到以下方面的间歇性异常:

Moped::Errors::ReplicaSetReconfigured: The operation: #<Moped::Protocol::Command 
@length=179 @request_id=1400 @response...>{:order=>"SwimSet"}, :update=>{"$inc"=>
{:next=>1}}, :new=>true, :upsert=>true} @fields=nil> failed with error "not master"
Run Code Online (Sandbox Code Playgroud)

他们的关键位是“因错误而不是主人而失败。尝试写入集合时偶尔会发生这种情况。这不是在故障转移期间或之后立即发生。关闭辅助设备但让仲裁器运行可以解决错误,但使我们没有任何冗余.

我们尝试过的:

  • 重建辅助节点并将其重新添加到集群中
  • 故障转移到新建的节点,然后重建旧的主节点
  • 升级到 Mongo 2.6.4

当前版本:

  • 蒙戈服务器:2.6.4
  • 蒙古人:3.1.6
  • 轻便摩托车:1.5.2

任何建议都非常感谢,因为现在已经断断续续地与此作斗争了近一个月。