MongoDB Replikation: So erstellen Sie MongoDB Replika-Set

⚡ Intelligente Zusammenfassung

MongoDB Die Replikation speichert identische Daten auf mehr als einem Computer. MongoDB Server, der vor Serverausfällen schützt und den Lastausgleich ermöglicht. Gruppiert MongoDB Die Instanzen bilden ein Replikatset, wobei ein primäres Replikat Schreibvorgänge entgegennimmt und sekundäre Replikate Lesevorgänge und Failover übernehmen.

  • 🗄️ Kernkonzept: Bei der Replikation werden dieselben Daten auf mehrere Server kopiert, sodass die Informationen auch dann verfügbar bleiben, wenn der primäre Server ausfällt.
  • ???? Primär- und Sekundärstufe: Ein Replikatset besteht aus einem primären Replikat, das Schreibvorgänge entgegennimmt, und sekundären Replikaten, die Lesevorgänge bedienen.
  • 🚀 Set-Erstellung: Der Befehl rs.initiate() startet ein Replikatset, nachdem die erste mongod-Instanz mit der Option replSet gestartet wurde.
  • ➕ Mitglieder hinzufügen: Mit dem Befehl rs.add() werden sekundäre Server hinzugefügt, mit rs.remove() wird ein Mitglied aus der Konfiguration entfernt.
  • 🔧 Fehlerbehebung: Die Befehle rs.status() und rs.printReplicationInfo() geben den Status des Heartbeats und die Größe des Oplogs zur Diagnose aus.

MongoDB Replikation: So erstellen Sie MongoDB Replika-Set

Was ist MongoDB Reproduzieren?

Replikation bezeichnet den Prozess, der sicherstellt, dass dieselben Daten auf mehr als einem Computer verfügbar sind. MongoDB Server. Dies ist manchmal erforderlich, um die Datenverfügbarkeit zu erhöhen.

Denn wenn Ihr Haupt MongoDB Wenn der Server aus irgendeinem Grund ausfällt, ist kein Zugriff auf die Daten möglich. Wenn Sie die Daten jedoch in regelmäßigen Abständen auf einen anderen Server replizieren lassen, können Sie auch dann von einem anderen Server aus auf die Daten zugreifen, wenn der Primärserver ausfällt.

Ein weiterer Zweck der Replikation ist die Möglichkeit des Lastausgleichs. Wenn sich viele Benutzer mit dem System verbinden, können Benutzer, anstatt alle mit einem System zu verbinden, mit mehreren Servern verbunden werden, sodass eine gleichmäßige Lastverteilung gewährleistet ist.

In MongoDBmehrere MongoDB Server sind in sogenannten Replikatsätzen gruppiert. Jeder Replikatsatz verfügt über einen primären Server, der alle Schreibvorgänge von Clients entgegennimmt. Alle weiteren Instanzen, die dem Replikatsatz hinzugefügt werden, sind sekundäre Instanzen und werden primär für alle Lesevorgänge verwendet.

So erstellen Sie einen Replikatsatz in MongoDB Hinzufügen des ersten Mitglieds mit rs.initiate()

Wie im vorherigen Abschnitt erwähnt, müssen wir zum Aktivieren der Replikation zunächst einen Replikatsatz erstellen MongoDB Instanzen.

Nehmen wir an, wir haben in unserem Beispiel drei Server namens ServerA, ServerB und ServerC. In dieser Konfiguration ist ServerA unser primärer Server, ServerB und ServerC sind unsere sekundären Server. Der folgende Screenshot veranschaulicht dies.

Replikatsatz erstellen in MongoDB

Im Folgenden sind die Schritte aufgeführt, die zum Erstellen befolgt werden müssen MongoDB Replikatsatz zusammen mit dem Hinzufügen des ersten Mitglieds zum Satz.

Schritt 1) ​​Stellen Sie sicher, dass alle mongod.exe-Instanzen hinzugefügt wurden.

Stellen Sie sicher, dass alle mongod.exe-Instanzen, die dem Replikatset hinzugefügt werden sollen, auf unterschiedlichen Servern installiert sind. Dadurch wird gewährleistet, dass auch bei Ausfall eines Servers die anderen Server verfügbar bleiben und somit weitere Instanzen von mongod.exe ausgeführt werden können. MongoDB wird verfügbar sein.

Schritt 2) Alle mongo.exe-Instanzen verbinden sich miteinander.

Stellen Sie sicher, dass alle mongo.exe-Instanzen miteinander verbunden werden können. Geben Sie auf ServerA die beiden folgenden Befehle aus.

mongo --host ServerB --port 27017
mongo --host ServerC --port 27017

Machen Sie dasselbe auf den übrigen Servern.

Schritt 3) Starten Sie die erste Instanz von mongod.exe.

Starten Sie die erste Instanz von mongod.exe mit der Option replSet. Diese Option stellt eine Gruppe bereit.ping für alle Server, die Teil dieses Replikatsets sein werden.

mongo --replSet "Replica1"

Dabei ist „Replica1“ der Name Ihres Replikatsatzes. Sie können einen beliebigen aussagekräftigen Namen für Ihren Replikatsatznamen wählen.

Schritt 4) Der erste Server wird dem Replikatset hinzugefügt.

Nachdem der erste Server dem Replikatset hinzugefügt wurde, besteht der nächste Schritt darin, das Replikatset mit dem folgenden Befehl zu initialisieren: rs.initiate().

Schritt 5) Überprüfen Sie das Replikatset

Überprüfen Sie die Replikatgruppe, indem Sie den Befehl rs.conf() ausführen, um sicherzustellen, dass die Replikatgruppe ordnungsgemäß eingerichtet ist.

Replikatsatz: Hinzufügen eines Sekundärteils mit rs.add()

Die sekundären Server können einfach mit dem Befehl rs.add zum Replikatsatz hinzugefügt werden. Dieser Befehl übernimmt den Namen der sekundären Server und fügt die Server dem Replikationssatz hinzu.

Schritt 1) Angenommen, Sie haben ServerA, ServerB und ServerC, die Teil Ihres Replikatsets sein müssen, wobei ServerA als primärer Server im Replikatset definiert ist.

Um ServerB und ServerC zum Replikatset hinzuzufügen, führen Sie die folgenden Befehle aus:

rs.add("ServerB")
rs.add("ServerC")

Replikatsatz: Neukonfigurieren oder Entfernen mit rs.remove()

Um einen Server aus der Konfigurationsgruppe zu entfernen, muss der Befehl „rs.remove“ verwendet werden.

Schritt 1) Zuerst muss die zu entfernende Instanz heruntergefahren werden. Dies kann durch Ausführen des Befehls `db.shutdownServer` in der MongoDB-Shell erfolgen.

Schritt 2) Verbindung zum primären Server herstellen.

Schritt 3) Verwenden Sie den Befehl `rs.remove`, um den gewünschten Server aus dem Replikatset zu entfernen. Angenommen, Sie haben ein Replikatset mit ServerA, ServerB und ServerC und möchten ServerC aus dem Replikatset entfernen, geben Sie folgenden Befehl ein:

rs.remove("ServerC")

Fehlerbehebung bei Replikatsätzen

Im Folgenden werden die gleichen Methoden zur Fehlerbehebung beschrieben, wenn Probleme bei der Verwendung von Replikatsätzen auftreten.

  1. Stellen Sie sicher, dass alle Instanzen von mongo.exe miteinander kommunizieren können. Angenommen, Sie haben drei Server namens ServerA, ServerB und ServerC. Führen Sie von ServerA aus die folgenden zwei Befehle aus:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Führen Sie den Befehl `rs.status` aus. Dieser Befehl zeigt den Status des Replikatsets an. Standardmäßig sendet jedes Mitglied den anderen Mitgliedern sogenannte „Heartbeat“-Nachrichten, die lediglich anzeigen, dass der Server aktiv und betriebsbereit ist. Der Befehl `rs.status` ruft den Status dieser Nachrichten ab und zeigt an, ob Probleme mit Mitgliedern des Replikatsets vorliegen.
  3. Überprüfen Sie die Größe des Oplogs. Der Oplog ist eine Sammlung in MongoDB Hier wird der Verlauf der Schreibvorgänge gespeichert, die für ausgeführt wurden MongoDB Datenbank. MongoDB Anschließend verwendet es dieses Oplog, um die Schreibvorgänge auf die anderen Mitglieder im Replikatsatz zu replizieren. Um das Oplog zu überprüfen, stellen Sie eine Verbindung zur erforderlichen Mitgliedsinstanz her und führen Sie den Befehl rs.printReplicationInfo aus. Dieser Befehl zeigt die Größe des Protokolls und wie lange es Transaktionen in seiner Protokolldatei speichern kann, bevor es voll ist.

Häufig gestellte Fragen

Ja. KI-Assistenten können die Startoptionen für mongod, die rs.initiate()-Konfiguration und die rs.add()-Befehle für ein Replikatset generieren. Überprüfen Sie stets die Hostnamen, Ports und Prioritäten der Mitglieder, bevor Sie die Konfiguration auf Produktivservern anwenden.

Ja. KI-gestützte Überwachungstools können rs.status()- und Oplog-Metriken auslesen, um sekundäre Server zu identifizieren, die hinter dem primären Server zurückbleiben. Sie können Ursachen wie Netzwerklatenz oder langsame Festplatten vorschlagen, die Techniker sollten diese jedoch vor dem Eingreifen bestätigen.

MongoDB Es wird eine ungerade Anzahl von stimmberechtigten Mitgliedern empfohlen, typischerweise drei, damit bei Wahlen eine Mehrheit erreicht werden kann. Sind nur zwei Datenknoten wirtschaftlich realisierbar, kann ein Schiedsrichter hinzugefügt werden, um Stimmengleichstände aufzulösen, ohne Daten zu speichern.

Wenn der primäre Kandidat nicht mehr erreichbar ist, halten die verbleibenden Mitglieder eine Wahl ab und ernennen automatisch einen wählbaren Stellvertreter zum primären Kandidaten. Sobald ein neuer primärer Kandidat gewählt ist, erstellen Sie einen Lebenslauf für die laufenden Operationen.ping Die Anwendung ist mit minimalen Ausfallzeiten verfügbar.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: