2016-10-07 66 views
0

我有兩個獨立的節點,其上運行mongodb。它們都有一個副本集配置rs0並以 rs.initiate()開頭。但在某些情況下,我希望它們作爲單獨的節點運行,但在某些情況下,我希望一個成爲主要的,另一個成爲次要的。但由於我已經完成了 rs.initiate(),我將無法將任何節點添加爲輔助節點。那麼是否有辦法撤銷副本集配置,以便我可以啓用添加輔助節點。有沒有辦法恢復或取消副本集配置

+0

你能解釋爲什麼你想要這個設置?你的要求聽起來很奇怪。也許我們可以找到更合適的解決方案。 –

+0

嘿@MarkusWMahlberg和mongodb一起我還有其他服務,例如運行在這些節點上的nginx,Vault等。我想創建一個設置,其中可以在獨立模式或集羣模式下運行。所以我希望我的設置具有一定的靈活性,這將使它可以輕鬆地從獨立模式轉換爲集羣模式。在集羣模式下,所有服務將僅在主節點中運行,但只有mongodb應在輔助節點上運行,因爲數據將從主服務器複製到輔助服務器,如果主服務器出現故障,輔助服務器可能會接管。 –

+0

此設置存在問題:a)您不應該在機器上運行其他任何MongoDB節點。它需要大量的RAM,並且萬一你有許多併發用戶,這些部件將爭奪這個寶貴的資源。 b)複製是一個利用oplog的連續過程,oplog是一個封頂的集合。如果您的更改超過oplog,那麼如果您的主服務器出現故障,您將被迫重新同步 - 不好主意。 c)我要做的是爲前端做一些HA設置(在不同的節點上,可能會根據負載動態添加一些),並根據MongoDB制定標準的replset。 –

回答

0

您可以簡單地準備一個新的配置文檔並重新配置複製。

rs.reconfig(new_config_file)

+2

嘿@satish做重新配置在這種情況下無濟於事,因爲主要需要使用'rs.add'命令添加輔助節點,但考慮到輔助節點也是使用'rs.initiate'配置了rs0,它不會讓我添加主節點上的輔助節點。我不知道如何重新配置​​輔助工作,因爲我正在尋找一些可以撤消rs.initiate配置的東西 –

相關問題