Getrennter primärer Replikatsatz wird wieder zum Replikatsatz hinzugefügt

Getrennter primärer Replikatsatz wird wieder zum Replikatsatz hinzugefügt

Ich brauche Ratschläge dazu, was mit einem primären Replikatsatz zu tun ist, der vom Netzwerk getrennt wird (z. B. Netzwerkausfall im Rechenzentrum), sodass wir einen der sekundären Sätze zum primären Satz hochstufen können, um den Dienst für die Anwendung mithilfe der Datenbank wiederherzustellen.

Sollten wir vor der Wiederherstellung der Netzwerkverbindung das auf der Box laufende MongoDB beenden, damit es wieder als sekundäres System hinzugefügt werden kann? Oder ändert ein von seinem Set getrenntes primäres System den Modus?

Was würde passieren, wenn wir den MongoDB-Server wieder in das Netzwerk einbinden würden, wobei MongoDB als primärer Server ausgeführt würde, obwohl er bis zur erneuten Verbindung isoliert wäre?

Entschuldigen Sie, falls dies in den Dokumenten an anderer Stelle beantwortet wird. Ich habe versucht zu suchen, aber möglicherweise suche ich nicht nach den richtigen Begriffen.

Antwort1

Ich brauche Ratschläge dazu, was mit einem primären Replikatsatz zu tun ist, der vom Netzwerk getrennt wird (z. B. Netzwerkausfall im Rechenzentrum), sodass wir einen der sekundären Sätze zum primären Satz hochstufen können, um den Dienst für die Anwendung mithilfe der Datenbank wiederherzustellen.

Automatisches Failover ist eine der inhärenten Funktionen von MongoDB.Replik-Set-Design, sodass Sie kein manuelles Failover auf ein sekundäres System durchführen müssen, es sei denn, Sie haben Ihre Standardkonfiguration absichtlich geändert. Sowohl primaryals auch secondarysindMitgliedsstaaten(oder Rollen) innerhalb eines Replikationssatzes und soll sich von der Master/Slave-Topologie unterscheiden, die normalerweise ein manuelles Eingreifen für ein Failover erfordert.

Wenn der aktuelle Primärserver für die Mehrheit der konfigurierten stimmberechtigten Mitglieder eines MongoDB-Replikatsatzes nicht erreichbar ist, ist das erwartete Ergebnis:

  • Die isolierte Primärseite wird zurücktreten und zu einer Sekundärseite werden
  • Eine neue Vorwahl kann gewählt werden, wenn zwischen der Mehrheit der stimmberechtigten Mitglieder weiterhin Verbindungen bestehen und ein wahlberechtigtes Mitglied vorhanden ist.

SehenReplikat-Set-WahlenWeitere Informationen finden Sie im MongoDB-Handbuch.

Sollten wir vor der Wiederherstellung der Netzwerkverbindung das auf der Box laufende MongoDB beenden, damit es wieder als sekundäres System hinzugefügt werden kann? Oder ändert ein von seinem Set getrenntes primäres System den Modus?

Ein isoliertes datentragendes Mitglied des Replikationssatzes bleibt im sekundären Zustand, wird aber als „nicht fehlerfrei/erreichbar“ angezeigt, wenn Sie rs.status()andere Mitglieder des Replikationssatzes überprüfen. Es ist im Allgemeinen eine gute Idee, alle Ihre wählbaren datentragenden Mitglieder identisch bereitzustellen, sodass jedes Mitglied bei Bedarf die Rolle des primären Mitglieds übernehmen kann (anstatt ein speziell bereitgestelltes primäres Mitglied zu haben).

Wenn Sie möchten, dass Ihr Replikatsatz automatisch wiederhergestellt wird, sollten Sie alle Mitglieder so laufen lassen, wie sie sind. Sie werden die Synchronisierung (falls möglich) wieder aufnehmen, sobald die Verbindung wiederhergestellt ist. In der Standardkonfiguration wird ein isoliertes Mitglied, das zuvor ein primäres Mitglied war, die Synchronisierung als sekundäres Mitglied wieder aufnehmen. Wenn Sie eine starke Präferenz dafür haben, welches Mitglied als primäres Mitglied gewählt wird (beispielsweise basierend auf dem Standort des Rechenzentrums), können SiePassen Sie die Priorität anfür Mitglieder von Replikatsätzen. Wenn ein bevorzugter Primärserver isoliert wurde, wird er dem Replikatsatz als Sekundärserver wieder beitreten und die Synchronisierung fortsetzen, bis er ausreichend aufgeholt hat, um als Primärserver infrage zu kommen und eine Wahl auszulösen.

Die Einschränkung bei der Wiederaufnahme der Synchronisierung besteht darin, dass isolierte Mitglieder noch genügend Überlappung mit demReplikations-Oplogeines gesunden Replikatsatzmitglieds, um alle Schreibaktivitäten nachzuholen, die während der Isolierung des Mitglieds aufgetreten sind. Ein sekundäres Replikat, dessen Oplog keine Überschneidungen mehr mit anderen Mitgliedern des Replikatsatzes aufweist, wird als „veraltet“ gekennzeichnet und mussneu synchronisiert.

Was würde passieren, wenn wir den MongoDB-Server wieder in das Netzwerk einbinden würden, wobei MongoDB als primärer Server ausgeführt würde, obwohl er bis zur erneuten Verbindung isoliert wäre?

Es ist nicht möglich, einen isolierten Primärserver zu haben, es sei denn, Sie konfigurieren Ihren Replikatsatz zwangsweise neu, sodass es keine anderen stimmberechtigten Mitglieder gibt. Sie können nicht zwei Primärserver in einem Replikatsatz haben. Wenn ein isolierter ehemaliger Primärserver Schreibvorgänge akzeptiert hat, die nicht an die Mehrheit der Replikatsatzmitglieder weitergegeben wurden, werden diese Schreibvorgängezurückgerollt(für administrative Eingriffe auf die Festplatte exportiert), wenn der ehemalige Primärserver die Verbindung mit den anderen Mitgliedern des Replikatsatzes wieder aufnimmt. Sie können zusätzliche Schritte unternehmen, umRollbacks vermeiden, einschließlich der Verwendung vonmajorityAnliegen schreiben.

Wenn Sie mit MongoDB-Replikatsätzen noch nicht vertraut sind, empfehle ich die Verwendung der Standardkonfiguration und -bereitstellung, um automatisches Failover und Wiederherstellung zu ermöglichen. Manuelle Eingriffe sollten nur in Ausnahmefällen erforderlich sein.

verwandte Informationen