2016-12-28 75 views
0

我有三個不同的Amazon服務器實例上的三節點副本集(1個主節點,1個輔助節點,1個仲裁者)。託管它們的服務器需要內存升級,所以我還需要關閉MongoDB實例。PRIMARY在重啓後過渡到RECOVERING

我在這個順序關閉的MongoDB實例:

  1. 二次
  2. 仲裁者
  3. 主要

我所用的工藝關停每個服務器

use admin 
db.shutdownServer() 
下方

全旺oDB實例確實沒有任何問題地正常關閉。到目前爲止,一切都很好。

亞馬遜的服務器升級後,我開始MongoDB的情況下,按以下順序:

  1. 仲裁者
  2. 二次
  3. 主要

仲裁者是仲裁模式和二級是在輔助模式下,但令我驚訝的是主機進入「恢復」模式。

我不知道原因,爲什麼主要機器去「恢復」。

我檢查了日誌。它顯示沒有成員同步...類似東西的東西

我的基本疑問是「主要必須在主要,直到有重新配置發生在副本集」。

我在服務器關機期間錯過了一個步驟嗎?或者我在服務器重啓期間錯過了一個步驟?

請大家澄清一下,這樣我才能克服這個問題。我需要經常關閉MongoDB服務器,因爲Amazon服務器中有很多升級。

+0

是否主要永遠留在「恢復」? – gzc

+0

您可以顯示以前是主服務器的日誌中的內容嗎?這聽起來很重要。 –

回答

0

當你開始你的副本集後,你的「SECONDARY」變成了「PRIMARY」,而你的「PRIMARY」很可能在短時間後處於第二狀態。爲了保持您的「主要」的主要地位,您必須給予比「次要」更高的優先權。

使用rs.conf()命令進行檢查。

Check here how to force node to be primary

+0

重啓後,小學進行恢復。因此,我不能讓它回到主 –

+0

因此,它恢復並保持..奇怪。完全初始同步。關閉該節點,從數據目錄中刪除所有文件並再次啓動節點,它將從其他節點重新同步。 (當然,在這之前你可以檢查日誌文件說明關於恢復狀態的理由) – JJussi