2012-09-07 25 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

相關問題