20 Hands On: Installation eines MongoDB Replica Sets

Diese Anleitung beschreibt, wie Sie ein einfaches MongoDB Replica Set installieren und konfigurieren. Sie ist ideal für Test- und Entwicklungsumgebungen. Für Produktionsumgebungen sollten zusätzliche Sicherheits- und Performance-Optimierungen berücksichtigt werden.


20.1 Voraussetzungen

20.1.1 Systemvoraussetzungen

20.1.2 Konfigurationsdateien

Erstellen Sie für jeden Server eine mongod.conf mit den folgenden Einstellungen:

Beispiel mongod.conf:

net:
  bindIp: 0.0.0.0
  port: 27017
storage:
  dbPath: /var/lib/mongo
replication:
  replSetName: "exampleReplicaSet"

20.2 Schritte zur Installation und Konfiguration

20.2.1 1. Starten der mongod Prozesse

Starten Sie auf jedem Server den mongod-Prozess mit der entsprechenden Konfigurationsdatei:

mongod --config /path/to/mongod.conf

20.2.2 2. Initialisierung des Replica Sets

Verbinden Sie sich über die MongoDB Shell (mongosh) mit einem der Server, der als Primary fungieren soll:

mongosh --port 27017

Initialisieren Sie das Replica Set:

rs.initiate({
  _id: "exampleReplicaSet",
  members: [
    { _id: 0, host: "hostname1:27017" }
  ]
})

20.2.3 3. Hinzufügen weiterer Mitglieder

Vom Primary-Server aus fügen Sie die anderen Server hinzu:

rs.add("hostname2:27017")
rs.add("hostname3:27017")

20.2.4 4. Überprüfung des Replica Set Status

Prüfen Sie den Status des Replica Sets:

rs.status()

Die Ausgabe zeigt: - Den aktuellen Primary-Knoten. - Den Status jedes Mitglieds (z. B. PRIMARY, SECONDARY). - Synchronisations- und Replikationsinformationen.


20.2.5 5. Testen der Failover-Funktionalität

Um die Hochverfügbarkeit zu testen: 1. Stoppen Sie den mongod-Prozess auf dem aktuellen Primary:

sudo systemctl stop mongod
  1. Überprüfen Sie, ob einer der Secondary-Knoten automatisch zum neuen Primary gewählt wurde:

    rs.status()

20.3 Optionale Konfigurationen

20.3.1 Hinzufügen eines Arbiter

Ein Arbiter nimmt an Wahlen teil, speichert jedoch keine Daten. Nützlich, wenn eine ungerade Anzahl von Stimmrechten erforderlich ist:

rs.addArb("hostname4:27017")

20.3.2 Lesepräferenzen

Konfigurieren Sie Lesepräferenzen, um Leseanfragen gezielt auf bestimmte Mitglieder zu leiten:


20.4 Beispiel-Konfigurationsdokument für das Replica Set

Falls Sie detailliertere Konfigurationen benötigen, z. B. Prioritäten oder Timeout-Einstellungen, können Sie das Konfigurationsdokument anpassen:

var cfg = {
  _id: "exampleReplicaSet",
  members: [
    { _id: 0, host: "hostname1:27017", priority: 2 },
    { _id: 1, host: "hostname2:27017", priority: 1 },
    { _id: 2, host: "hostname3:27017", arbiterOnly: true }
  ],
  settings: {
    electionTimeoutMillis: 5000
  }
}

rs.reconfig(cfg)

Mit diesen Schritten haben Sie ein funktionierendes MongoDB Replica Set installiert und konfiguriert. Dieses Setup bietet Redundanz, Hochverfügbarkeit und die Grundlage für eine skalierbare Datenbankinfrastruktur. Für Produktionsumgebungen sollten zusätzliche Sicherheitsmaßnahmen wie TLS/SSL, Authentifizierung und regelmäßige Backups implementiert werden. Weitere Informationen finden Sie in der offiziellen MongoDB-Dokumentation.