Benötigt ein MongoDB-Replikatsatz mindestens 2 oder 3 Mitglieder?

Antworten:

19

Sie können tatsächlich ein einzelnes Mitglied "Set" ausführen, wenn Sie möchten.

Am besten ist es aber, wenn Sie 3 Mitglieder haben (oder eine ungerade Zahl höher). Replikatsätze sind schreibgeschützt, wenn ein Großteil des Satzes nicht verfügbar ist. Wenn Sie also ein Mitglied in einem Satz mit zwei Mitgliedern verlieren, wird das verbleibende Mitglied schreibgeschützt.

Sie können auch zwei ordentliche Mitglieder sowie ein "Nur-Stimm-Mitglied" (als Schiedsrichter bezeichnet) ernennen. Dies ist die kleinste einigermaßen sichere Option für einen Replikatsatz.

MrKurt
quelle
6
Ich möchte hervorheben, dass zwei Mitglieder kein fehlertolerantes System sind. @ MrKurt ist richtig, dass, wenn ein Mitglied ausfällt (ungeplant), das andere nicht PRIMARY sein kann und auf SECONDARY zurücktritt (schreibgeschützt). Mit anderen Worten, wenn Sie ein Replikat in der Produktion benötigen, sind 3 Mitglieder das Minimum für die Fehlertoleranz gegenüber einem Mitglied, das ausfällt.
Bret Fisher
3

Dies ist im Grunde genommen eine Formulierung, da die Anforderungen im Lernprogramm keine allgemeine Aussage zu Replikatsätzen sind, sondern sich auf das Lernprogramm selbst beziehen. Die Anforderung für die Bereitstellung eines Replikatsatzes im Allgemeinen ist 1 oder mehr, die meisten haben 2 oder mehr, aber das Lernprogramm, auf das Sie verweisen, dient speziell der Bereitstellung eines Satzes mit 3 Mitgliedern:

In diesem Lernprogramm wird beschrieben, wie aus drei vorhandenen Instanzen von MongoDB ein Replikatsatz mit drei Mitgliedern erstellt wird

Die Voraussetzung für das Tutorial ist daher, dass der Satz 3 Mitglieder hat. Trotzdem ist es ein wenig verwirrend, die beiden Anweisungen zu haben. Ich habe daher eine Pull-Anfrage (EDIT: Pull-Anfrage wurde jetzt zusammengeführt) gesendet, um sie ein wenig zu bereinigen.

Sie können einen einzelnen Mongod-Knoten als Teil einer Replikatgruppe konfigurieren, aber genau genommen wäre dies keine "Gruppe". Da die Replikation mehr Ressourcen als ein eigenständiger Server benötigtmongod ( hauptsächlich aufgrund des Oplogs ), ist die Ausführung eines einzelnen Members nur dann sinnvoll, wenn dies eine temporäre Maßnahme ist, bevor Sie andere Members zum Set hinzufügen oder wenn Sie ein Oplog für benötigen andere Gründe (wie Backup).

Adam C
quelle