MongoDB ist eine sehr beliebte NoSQL-Datenbank. Es wird häufig zum Speichern und Verwalten von Anwendungsdaten und Website-Informationen verwendet. MongoDB verfügt über ein dynamisches Layout, einfache Skalierbarkeit und ein Datenformat, auf das programmgesteuert problemlos zugegriffen werden kann.
Wir werden sehen, wie Sie die Datenreplikation konfigurieren, um eine hohe Verfügbarkeit der Daten zu gewährleisten und ein robustes Failover-System zu erstellen. Dies ist in jeder Produktionsumgebung wichtig, in der sich ein Datenbankausfall negativ auf Ihre Organisation oder Ihr Unternehmen auswirkt.
Was ist ein MongoDB-Replikationssatz?
MongoDB verarbeitet die Replikation über eine Anwendung namens Replication Sets. Replication Sets ähneln in ihrer Grundform eher den Knoten in einer Master / Slave-Konfiguration. Ein einzelnes Hauptmitglied wird als Grundlage für die Anwendung der Änderungen auf die sekundären Mitglieder verwendet.
Der Unterschied zwischen einem Replikationssatz und einer Master-Slave-Replikation besteht darin, dass ein Replikationssatz über einen systemeigenen automatischen Failover-Mechanismus verfügt, falls das Master-Mitglied nicht verfügbar ist.
Hauptmitglied: Das Hauptmitglied ist der Standardzugriffspunkt für Transaktionen mit dem Replikationssatz. Es ist das einzige Mitglied, das Schreibvorgänge akzeptieren kann.
Jeder Replikationssatz kann jeweils nur ein Hauptmitglied haben. Dies liegt daran, dass die Replikation durch Kopieren des Operationsprotokolls und Wiederholen der Änderungen im sekundären Replikationsdatensatz erfolgt. Wenn mehrere Primaries Schreibvorgänge akzeptieren würden, würde dies zu Datenkonflikten führen.
Sekundäre Mitglieder: Ein Replikationssatz kann mehrere untergeordnete Elemente enthalten. Sekundäre Mitglieder reproduzieren Änderungen aus dem Operationsprotokoll in ihren eigenen Daten
Obwohl die Standardanwendungen das primäre Mitglied sowohl zum Lesen als auch zum Schreiben abfragen, können Sie Ihre Einstellungen so konfigurieren, dass sie von einem oder mehreren sekundären Mitgliedern gelesen werden. Ein Highschool-Mitglied kann Schulleiter werden, wenn die Grundschule getrennt ist oder eintritt.
. Um die Replikation zu konfigurieren, fügen wir zunächst die IP-Adresse zum Host hinzu .
nano / etc / hosts 127.0.0.1 localhost mongo0 123.456.789.111 mongo0.domain.com 123.456.789.222 mongo1.domain.com 123.456.789.333 mongo2.domain.com
Bearbeiten Sie die Datei / etc / hostname:
nano / etc / hostname mongo0.example.com
Jetzt müssen wir die MongoDB-Konfiguration starten, um den MongoDB-Prozess auf jedem Server anzuhalten.
Service Mongodb zu stoppen
Jetzt müssen wir ein Verzeichnis konfigurieren, in dem unsere Daten gespeichert werden. Erstellen Sie ein Verzeichnis mit dem folgenden Befehl:
mkdir / mongo-metadaten
Um unsere neue Replikationssatzkonfiguration widerzuspiegeln
nano / etc / mongodb.conf dbpath = / mongo-metadata port = 27017 replSet = rs0 Gabel = wahr
Speichern und schließen Sie die Datei. Starten Sie das Replikationsmitglied, indem Sie den folgenden Befehl eingeben:
mongod --config / etc / mongodb.conf
Diese Schritte müssen für jedes Mitglied des Replikatsatzes wiederholt werden.
Starten Sie den Replikationssatz
Nachdem Sie jedes Mitglied des Replikationssatzes konfiguriert und den mongod-Prozess auf jedem Computer gestartet haben, können Sie die Replikation starten und jedes Mitglied hinzufügen.
Schreiben Sie in einem seiner Mitglieder:
Mongo
Dadurch erhalten Sie eine MongoDB-Benachrichtigung für das aktuelle Mitglied.
Starten Sie die Replikationseinstellung, indem Sie Folgendes eingeben:
rs.initiate ()
Dadurch wird der Replikationssatz gestartet und der Server hinzugefügt, mit dem Sie derzeit als erstes Mitglied des Satzes verbunden sind. Dies können Sie sehen, indem Sie Folgendes eingeben:
rs.conf () { "_id": "rs0" "version": 1, "Mitglieder": [ { "_id": 0, "host" "mongo0.example.com: 27017" } ] }
Jetzt können Sie die Knoten zum Replikatsatz hinzufügen, indem Sie auf den Hostnamen verweisen, den Sie in der Datei / etc / hosts angegeben haben:
rs.add ("mongo1.example.com") {"Ok": 1}
Führen Sie dies für jedes verbleibende Replikationsmitglied aus. Ihr Replikationssatz sollte jetzt betriebsbereit sein.