2016-10-07 5 views
0

Ich habe zwei eigenständige Knoten, die mongodb auf ihnen ausgeführt haben. Beide haben eine Replikat-Konfiguration rs0 und beginnen mit rs.initiate(). Aber in einigen Szenarien möchte ich, dass sie als einzelne Knoten ausgeführt werden, aber in einigen Fällen möchte ich, dass einer primär und einer sekundär wird. Aber seit ich rs.initiate() auf beiden gemacht habe, werde ich keinen Knoten als sekundär hinzufügen können. Gibt es also eine Möglichkeit, die Konfiguration der Replikatgruppe rückgängig zu machen, sodass ich das Hinzufügen des sekundären Knotens aktivieren kann?Gibt es eine Möglichkeit, Replikat-Set-Konfiguration wiederherzustellen oder rückgängig zu machen

+0

Können Sie erklären, warum Sie dieses Setup möchten? Ihre Anforderungen klingen eher komisch. Vielleicht können wir eine geeignetere Lösung finden. –

+0

Hey @MarkusWMahlberg also zusammen mit mongodb Ich habe andere Dienste wie nginx, vault etc auf diesen Knoten laufen. Ich wollte ein Setup erstellen, in dem sie im Standalone-Modus oder im Cluster-Modus laufen können. Also wollte ich etwas Flexibilität in meinem Setup haben, das es ermöglicht, einfach vom Standalone- in den Cluster-Modus zu wechseln. Im Cluster-Modus werden alle Dienste nur im primären Knoten ausgeführt, jedoch sollte nur mongodb auf dem sekundären Knoten ausgeführt werden, da die Daten von der primären zur sekundären repliziert werden. Wenn die primäre Verbindung ausfällt, kann die sekundäre übernehmen. –

+0

Dieses Setup ist problematisch: a) Sie sollten nichts anderes als einen MongoDB-Knoten auf einem Computer ausführen. Es benötigt viel RAM, und wenn Sie viele gleichzeitige Benutzer haben, werden die Teile um diese wertvolle Ressource konkurrieren. b) Die Replikation ist ein kontinuierlicher Prozess, bei dem das oplog verwendet wird, eine gekappte Sammlung. Wenn Ihre Änderungen den Oplog überschreiten, würden Sie zu einer Resynchronisierung gezwungen - schlechte Idee, wenn Ihr Primärserver ausgefallen ist. c) Was ich tun würde ist, ein HA-Setup für die Frontends zu machen (auf verschiedenen Knoten, vielleicht einige dynamisch basierend auf dem Laden hinzuzufügen) und einen Standard-Replets wie in MongoDB zu haben. –

Antwort

0

können Sie einfach ein neues Konfigurationsdokument vorbereiten und die Replikation neu konfigurieren.

rs.reconfig (new_config_file)

+2

Hey @satish eine Neukonfiguration zu tun, wird in diesem Szenario nicht helfen, da primäre muss die sekundäre mit 'rs.add' Befehl hinzufügen, aber auch diese sekundäre wurde konfiguriert mit 'rs.initiate' mit rs0 es nicht erlaubt Ich füge den Sekundärknoten auf dem Primärknoten hinzu. Ich bin mir nicht sicher, wie die Neukonfiguration auf der Sekundärseite funktionieren wird, da ich nach etwas suchte, das die rs.initiate-Konfiguration rückgängig machen würde –

Verwandte Themen