2012-09-07 28 views
0

我的MongoDB RS配置类似于:MongoDB的replicat设置辅助节点改为初级不合理

node1:shard1 primary,shard2 primary 
node2:shard1 secondary,shard2 secondary 
node3:shard1 arbiter,shard2 artbite 

每次有许多写入和读取,但是昨天我发现模式1变成次要的,相反,节点2成为主要的,我这很奇怪,所以发布这个问题,希望看到更多的观点。 在此先感谢

回答

0

一个主要下降成为一个次要的副本集并不罕见,并且会出现三个原因之一。

  1. 它被告知由replSetStepDown命令
  2. 初级无法联系大多数节点
  3. 它看到二次更资格成为主,并具有更高的优先级。

如果辅助服务不能联系主服务器,或者主服务器响应速度太慢,也可以呼叫选举。选举将迫使小学退出。

您可以阅读documentation

+0

详细了解此过程,非常感谢你,现在我还有一个问题请您帮帮我。 你知道我的集群组织,现在我想贬低artiter到二级,以减少旧的二级压力(阅读压力)。 然后我添加新成员,然后删除仲裁者,当我检查rs.status()一切顺利。但问题是,读取请求仍然击中旧的辅助而不是两个secondaris当我使用mongostat --discover检查,新的辅助没有query.so我的目的不achived.I使用java客户端和使用slaveOk()方法。 在此先感谢 – Jack

+1

“SlaveOK”设置将尝试通过ping选择最接近的Secondary。你的应用服务器连接到相同的'mongos'吗?你也许想用'SlaveOk'来测试,看看从辅助阅读是否真的获得了很多的性能。 1.8.2以来,在锁定和屈服方面也有很多改进,您可能需要考虑升级。 –

+0

是的,连接到相同的mongoS。 当我关闭slaveOk时,我发现所有的读取都是主要的,所以在这种情况下主压力非常大。 我尝试使用标记集来表示读取的推理,但我不知道如何使用它。 有什么建议吗? 非常感谢你 – Jack

相关问题