English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die Replikation von MongoDB ist der Prozess der Synchronisierung der Daten auf mehreren Servern.
Replikation stellt eine Redundanzkopie der Daten bereit und speichert Datenkopien auf mehreren Servern, was die Verfügbarkeit der Daten erhöht, und kann die Sicherheit der Daten gewährleisten.
Replikation ermöglicht es Ihnen auch, Daten aus Hardwareausfällen und Serviceunterbrechungen wiederherzustellen.
Die Replikation von MongoDB erfordert mindestens zwei Knoten. Ein Knoten ist der Primärknoten, der für die Verarbeitung von Clientanfragen verantwortlich ist, und die anderen sind Sekundärknoten, die für die Replikation der Daten auf dem Primärknoten verantwortlich sind.
Die gängige Kombination der verschiedenen Knoten in MongoDB ist: ein Hauptknoten und ein Sekundärknoten, ein Hauptknoten und mehrere Sekundärknoten.
Der Primärknoten protokolliert alle Operationen im oplog, und die Sekundärknoten polls regelmäßig den Primärknoten, um diese Operationen zu erhalten, und führt diese Operationen auf den eigenen Datenkopie aus, um sicherzustellen, dass die Daten des Sekundärknotens mit denen des Primärknotens übereinstimmen.
Das Diagramm der MongoDB-Replikation ist wie folgt gezeigt:
Im obigen Strukturdiagramm liest der Client Daten vom Primärknoten aus, und wenn der Client Daten in den Primärknoten schreibt, Der Primärknoten und der Sekundärknoten interagieren miteinander, um die Konsistenz der Daten zu gewährleisten.
In diesem Tutorial verwenden wir denselben MongoDB, um den Test von MongoDB-Master-Slave durchzuführen. Die Schritte sind wie folgt:
1、Schließen Sie den laufenden MongoDB-Server.
Jetzt starten wir durch Angabe --Verwenden Sie die replSet-Option, um mongoDB zu starten.--Die Grundgrammatik des Befehls replSet ist wie folgt:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
Der obige Beispielstart wird einen MongoDB-Beispielnamen rs0 starten, dessen Portnummer ist27017
Nach dem Start öffnen Sie den Befehls-Prompt und verbinden Sie sich mit dem mongoDB-Dienst.
Verwenden Sie den Befehl rs.initiate() im MongoDB-Client, um einen neuen Kopie-Satz zu starten.
Wir können rs.conf() verwenden, um die Konfiguration des Kopie-Satzes anzuzeigen
Um den Status des Kopie-Satzes anzuzeigen, verwenden Sie den Befehl rs.status()
Um Mitglieder des Replikationskonsortiums hinzuzufügen, müssen wir mehrere Server verwenden, um den Mongo-Dienst zu starten. Gehen Sie zum Mongo-Client und verwenden Sie die rs.add()-Methode, um die Mitglieder des Replikationskonsortiums hinzuzufügen.
>rs.add(HOST_NAME:PORT)
Annehmen, dass Sie einen mongod1.net, Portnummer27017MongoDienst. Verwenden Sie den Befehl rs.add() im Client-Commandfenster, um ihn zum Replikationskonsortium hinzuzufügen. Der Befehl lautet wie folgt:
>rs.add("mongod1.net:27017") >
In MongoDB können Sie den Dienst nur über den Master-Node zum Replikationskonsortium hinzufügen, Um zu bestimmen, ob der derzeit laufende MongoDB-Dienst der Master-Node ist, kann der Befehl db.isMaster() verwendet werden.
MongoDBs Replikationskonsortium unterscheidet sich von den gebräuchlichen Master-Slave-Konfigurationen, bei denen nach dem Ausfall des Hosts alle Dienste stoppen, während im Replikationskonsortium nach dem Ausfall des Hosts der Slave den Master-Node übernimmt und es keine Ausfallbedingungen gibt.