Ich benutze mongodb mit Replikat-Set, die drei Knoten haben, ihre IPs sind 192.168.1.100, 192.168.1.101,192.168.1.102.
In meinem aktuellen Setup 192.168.1.100 ist Primary und andere sind Secondary. Ich habe Priorität für 192.168.1.100 und 192.168.1.101 ist 1 und für 192.168.1.102 ist 0, jetzt nach einiger Zeit meine 192.168.1.100 und 192.168. 1.101 beide Knoten sind ausgefallen.
Ich möchte 192.168.1.102 zwingen, primary zu werden, damit Meine Anwendung lebt. Ist ihre Möglichkeit, den 192.168.1.102-Knoten zwangsweise in einen primären Knoten umzuwandeln?
Aus dieser Situation zu lösende Lösungen sind: Wenn nur ein Knoten im Replikatsatz verbleibt und dieser Knoten sekundär ist (mit Priorität 0), dann schließen Sie zuerst den Knotenextraktknoten aus dem Replikatsatz (durch die Zeile comment repliSet von mongod.conf) oder starte mongo gehe zur mongo Kommandozeile benutze lokale Modify Datensätze von system.replset und lösche record), dann starte node als Standalone mongodb:)
Sie können es ohne Neustart mongod durch die folgenden Schritte erreichen -
Verbindung zum aktiven Mitglied nehmen Sie an, dass es auf localhost am Port 27017 läuft:
%Vor%Holen Sie sich Ihre Mitglieds-IDs von hier -
%Vor%Angenommen, Ihre aktive Mitglieds-ID lautet 1. Konfigurieren Sie dann die Replikation wie in den folgenden Schritten beschrieben -
%Vor%Es wird Ihr aktives Mitglied auf primäres und verfügbar für die Anwendung und schreibt.
Sie können die Schritte hier befolgen, um die Replikatgruppe neu zu konfigurieren wenn die Mehrheit der Mitglieder nicht erreichbar ist.
Da im Replikatsatz nur noch ein Knoten vorhanden ist, werden Ihre Daten nicht repliziert. Sie fügen diese beiden Knoten am besten wieder hinzu, sobald sie am Leben sind.
Nicht ohne manuellen Eingriff in diesem Fall. Sie werden auch ein anderes Problem erleiden. Der Großteil der Menge wird offline sein, das bedeutet, dass auch ohne eine Priorität von 0 Ihr verbleibendes Replikatmitglied nicht primär wird.
Stattdessen musst du entweder die Mehrheit der Menge wiederherstellen oder du musst rs.reconfig()
ausführen, um die zwei toten Mitglieder deiner Gruppe zu entfernen.
Sie finden Beispiele usw. hier: Ссылка
Ich liebte mein Problem, indem ich wie folgt folge:
Verbinde dich mit einem überlebenden Mitglied und speichere die aktuelle Konfiguration. Berücksichtigen Sie die folgenden Beispielbefehle zum Speichern der Konfiguration:
%Vor%Entfernen Sie auf demselben Member die Member down und unreachable des Replikatsatzes aus dem Elementarray, indem Sie das Array nur den überlebenden Membern zuweisen.
lassen wir nur das einzelne Mitglied übrig
%Vor%member [0] ist derjenige, der in Array ist, was in rs.conf () steht Konfigurieren Sie die Menge neu, indem Sie die Option force auf true setzen:
%Vor%Jetzt können Sie sehen, dass das überlebende Mitglied jetzt PRIMÄR ist. Quelle: Ссылка
Tags und Links mongodb