Suche…


Mongodb als Nachbildung

Wir würden mongodb als Replikatsatz mit 3 Instanzen erstellen. Eine Instanz wäre primär und die anderen zwei Instanzen wären sekundär.

Der Einfachheit halber werde ich ein Replikatset mit drei Instanzen von mongodb auf demselben Server haben. Um dies zu erreichen, würden alle drei mongodb-Instanzen auf unterschiedlichen Portnummern laufen.

In einer Produktionsumgebung, in der eine dedizierte mongodb-Instanz auf einem einzelnen Server ausgeführt wird, können Sie dieselben Portnummern wiederverwenden.

  1. Erstellen Sie Datenverzeichnisse (Pfad, in dem die Mongodb-Daten in einer Datei gespeichert werden).
- mkdir c:\data\server1 (datafile path for instance 1)
- mkdir c:\data\server2 (datafile path for instance 2)
- mkdir c:\data\server3 (datafile path for instance 3)
  1. ein. Starten Sie die erste Mongod-Instanz
  • Öffnen Sie die Eingabeaufforderung und geben Sie die folgende Eingabetaste ein.
mongod --replSet s0 --dbpath c:\data\server1 --port 37017  --smallfiles --oplogSize 100

Der obige Befehl ordnet die Instanz von mongodb einem Replikatsatznamen "s0" zu und startet die erste Instanz von mongodb auf Port 37017 mit oplogSize 100 MB

  1. b. Starten Sie auf ähnliche Weise die zweite Instanz von Mongodb
mongod --replSet s0 --dbpath c:\data\server2 --port 37018  --smallfiles --oplogSize 100

Der obige Befehl ordnet die Instanz von mongodb einem replicaSet-Namen "s0" zu und startet die erste Instanz von mongodb an Port 37018 mit oplogSize 100 MB

  1. c. Starten Sie nun die dritte Instanz von Mongodb
mongod --replSet s0 --dbpath c:\data\server3 --port 37019  --smallfiles --oplogSize 100

Der obige Befehl ordnet die Instanz von mongodb einem Replikatsatznamen "s0" zu und startet die erste Instanz von mongodb auf Port 37019 mit oplogSize 100 MB

Wenn alle 3 Instanzen gestartet sind, sind diese 3 Instanzen derzeit unabhängig voneinander. Wir müssen diese Instanzen jetzt als Replikatsatz gruppieren. Wir machen dies mit Hilfe eines Konfigurationsobjekts.

3.a Verbinden Sie sich über die Mongo-Shell mit einem der Mongod-Server. Öffnen Sie dazu die Eingabeaufforderung und geben Sie ein.

mongo --port 37017

Sobald Sie mit der Mongo-Shell verbunden sind, erstellen Sie ein Konfigurationsobjekt

   var config = {"_id":"s0", members[]};

Dieses Konfigurationsobjekt hat 2 Attribute

    1. _id: der Name des Replikatsatzes ("s0")
    2. Members: [] (Members ist ein Array von Mongod-Instanzen. Lassen Sie dieses Feld zunächst leer, fügen Sie Mitglieder über den Push-Befehl hinzu.)

3.b Push (Hinzufügen) von Mongod-Instanzen zum Members-Array im Config-Objekt. Auf dem Mongo-Muscheltyp

 config.members.push({"_id":0,"host":"localhost:37017"});
 config.members.push({"_id":1,"host":"localhost:37018"});
 config.members.push({"_id":2,"host":"localhost:37019"});

Wir weisen jeder Mongod-Instanz eine _id und einen Host zu. _id kann eine eindeutige Nummer sein, und der Host sollte der Hostname des Servers sein, auf dem er ausgeführt wird, gefolgt von der Portnummer.

  1. Initiieren Sie das config-Objekt mit dem folgenden Befehl in der Mongo-Shell.
rs.initiate(config)
  1. Nach ein paar Sekunden haben wir einen Replikatsatz von 3 Mongod-Instanzen, die auf dem Server ausgeführt werden. Geben Sie den folgenden Befehl ein, um den Status des Replikatsatzes zu überprüfen und um festzustellen, welcher primärer und welcher sekundärer ist.
rs.status();


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow