So setzen Sie die Einstellungen für MongoDB-Replikatsätze zurück

16

Ich möchte die Konfigurationen der Replik neu beginnen. Ist das möglich? Wie kann ich es zurücksetzen?

In der Gruppe sagen die Leute, sie sollen den Datenbankinhalt entfernen, aber gibt es eine Abhilfe?

Ryan
quelle

Antworten:

19

Wenn Sie die Daten behalten möchten, aber außerhalb eines Replikatsets starten möchten, starten Sie den mongod-Prozess ohne --replSetund an einem anderen Port neu. Das gibt dir einen eigenständigen Mongod.

Stellen Sie sicher, dass die local.system.replsetAuflistung leer ist , um sicherzustellen, dass die Replikatsatzkonfiguration nicht mehr in der Instanz vorhanden ist.

Sobald dies erledigt ist und Sie mit Ihrer eigenständigen Instanz zufrieden sind, können Sie einen Neustart mit einem anderen --replSetArgument durchführen und den Konfigurationsprozess für den Replikatsatz erneut durchführen:

http://www.mongodb.org/display/DOCS/Replica+Set+Configuration

Die andere Möglichkeit ist, wie Sie bereits erwähnt haben, alle Datendateien zu entfernen und ganz von vorne zu beginnen.

Adam C
quelle
// Server an einem anderen als dem zugewiesenen Port starten, aber mit demselben Db-Ordner. Verbindung über Mongoi-Client mit neuem Port: Verwenden Sie die lokale Datei db.system.replset.remove ({"_id": "replset"}) // Ändern Sie das Replset in Anführungszeichen in Ihren Namen? db.system.replset.find () db.adminCommand ({shutdown: 1}) // dann auf einem anderen Port neu starten
tgkprog
5

Sie müssen keine Datenbankdateien entfernen, um die Konfiguration Ihres Replikatsets zurückzusetzen.

Stellen Sie zum Zurücksetzen der Konfiguration sicher, dass alle Knoten in Ihrem Replikatsatz gestoppt sind. Löschen Sie dann die "lokale" Datenbank für jeden Knoten.

Wenn Sie sicher sind, dass nicht alle Knoten ausgeführt werden und die "lokale" Datenbank nicht mehr vorhanden ist, starten Sie den mongod-Prozess erneut (natürlich mit dem Flag --replSet). Führen Sie dann rs.initiate () aus.

akskung
quelle
4
  1. Gehen Sie auf Sekundärservern zur Mongo-Shell

  2. Stoppen Sie die sekundären Server mit dem folgenden Befehl:

    use admin
    db.shutdownServer()
    
  3. Gehen Sie zur primären Mongo-Shell und geben Sie die folgenden Befehle ein:

    rs.remove()
    

    Um den Status zu überprüfen, verwenden Sie rs.status()

Weitere Informationen finden Sie unter folgendem Link: http://www.learnit.net.in/2016/03/stopping-and-starting-mongodb.html

Shrinivas Kalangutkar
quelle
1
  1. editieren /etc/mongod.confund auskommentierenreplication: block
  2. service mongod restart
  3. mongo local --eval "db.dropDatabase()"
  4. service mongod stop
  5. auf mongo primär: rs.add("this node")
  6. bearbeiten /etc/mongod.confund kommentieren Sie diereplication: block
  7. service mongod restart

Ihr Knoten wird dem vorhandenen Replikatsatz hinzugefügt und beginnt mit der Synchronisierung mit dem vorhandenen Primärknoten

blueheart_2
quelle