MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie skaliere ich MongoDB?

Wenn Ihnen die Festplatte ausgeht, müssen Sie sich natürlich eine größere Festplatte besorgen.

Es gibt mehrere Möglichkeiten, Ihre Daten zu migrieren, es hängt wirklich von der Art der Betriebszeit ab, die Sie benötigen. Die ersten Schritte umfassen natürlich das Bündeln der Maschine und das Erstellen des neuen Volumens.

Diese Tipps gehen vom Einfachsten bis zum Schwierigsten.

Können Sie die Datenbank für einige Minuten vollständig offline schalten?

Wenn ja, tun Sie dies (Migration per Kopie):

  1. Neues EBS auf dem Server mounten.
  2. Verhindern Sie, dass Ihre App eine Verbindung zu Mongo herstellt.
  3. Fahren Sie Mongod herunter und warten Sie, bis alles geschrieben ist (überprüfen Sie die Protokolle)
  4. Kopieren Sie alle Datendateien (und wahrscheinlich die Protokolle) auf das neue EBS-Volume.
  5. Aktualisieren Sie während des Kopiervorgangs Ihr Mongod-Startskript (oder Ihre Konfigurationsdatei) so, dass sie auf das neue Volume verweist.
  6. Mongod starten und Verbindung prüfen
  7. Starten Sie Ihre App neu.

Können Sie die Datenbank nur für ein paar Minuten offline schalten?

Wenn ja, tun Sie dies (sklaven ). und Schalter):

  1. Starten Sie eine neue Instanz und mounten Sie das neue EBS auf diesem Server.
  2. Mongod als --slave installieren/starten und auf die aktuelle Datenbank zeigen. (Möglicherweise müssen Sie den aktuellen als --master neu starten)
  3. Der Slave führt eine neue Synchronisation durch. Sobald der Slave auf dem neuesten Stand ist, führen Sie einen "Wechsel" durch (nächste Schritte).
  4. Schreibvorgänge vom System deaktivieren.
  5. Schließen Sie den ursprünglichen Mongod-Prozess.
  6. Starte den "neuen" Mongod als Master statt als Slave neu.
  7. Reaktivieren Sie Systemschreibvorgänge, die auf den neuen Master zeigen.

Bei richtiger Ausführung können die letzten drei Schritte in Minuten oder sogar Sekunden erledigt werden.

Können Sie sich keine Ausfallzeiten leisten?

Wenn ja, tun Sie dies (master-master ):

  1. Starten Sie eine neue Instanz und mounten Sie das neue EBS auf diesem Server.
  2. Mongod als Master und Slave gegen die aktuelle Datenbank installieren/starten. (möglicherweise muss der aktuelle als Master neu gestartet werden, minimale Ausfallzeit?)
  3. Der neue Computer sollte eine neue Synchronisierung durchführen.
  4. Sobald der neue Computer auf dem neuesten Stand ist, stellen Sie das System so um, dass es auf den neuen Server verweist.

Ich weiß, es scheint, als wäre diese letzte Version tatsächlich die beste, aber sie kann ein wenig heikel sein (zum Zeitpunkt des Schreibens). Der Grund ist einfach, dass ich ehrlich gesagt viele Probleme mit der "Master-Master"-Replikation hatte, besonders wenn Sie nicht mit beiden aktiv beginnen.

Wenn Sie vorhaben, diese Methode zu verwenden, empfehle ich dringend, zuerst einen kleineren Übungslauf durchzuführen. Wenn hier etwas einschlägt, löscht Mongo möglicherweise einfach alle Ihre Datendateien, was zur Folge hat, dass noch mehr Daten gelöscht werden.

Wenn Sie eine gute Version davon bekommen, posten Sie bitte die Befehle, ich würde es gerne in Aktion sehen.