Freigeben über


Welche Optionen gibt es zum Migrieren von Daten von MongoDB zu Azure DocumentDB?

Dieser Artikel hilft Ihnen beim Planen und Ausführen einer Migration von MongoDB zu Azure DocumentDB. Es umfasst die verfügbaren Migrationstools, die wichtigsten Phasen einer Migration und bewährte Methoden, um Risiken zu reduzieren und Ausfallzeiten zu minimieren.

Unabhängig davon, ob Sie von einem lokalen MongoDB-Server, einem in der Cloud gehosteten virtuellen Computer oder einem verwalteten MongoDB-Dienst migrieren, gelten die Migrationsoptionen, Anleitungen und bewährten Methoden in diesem Artikel.

Wichtige Migrationsphase

Eine erfolgreiche Migration folgt diesen unterschiedlichen Phasen. Jede Phase hat spezifische Ziele und Erfolgskriterien.

1. Bewerten

Führen Sie mithilfe der Azure DocumentDB-Migrationserweiterung einen automatisierten Scan Ihrer Quelle mongoDB aus, um nicht unterstützte Features, Befehle, Abfragesyntax und Indextypen zu identifizieren. Die Bewertung bietet auch eine Übersicht über MongoDB-Version, Lizenz, Instanztyp und Datenbank- und Sammlungsmetriken. Verwenden Sie diese Ergebnisse, um Schemaänderungen zu planen und alle erforderlichen Umgestaltungen vor der Migration zu identifizieren.

Tipp

Es wird empfohlen, die unterstützten MongoDB Query Language (MQL)-Features und -Syntax detailliert zu überprüfen und vor der eigentlichen Migration einen Machbarkeitsnachweis durchzuführen.

2. Vorbereiten

Analysieren Sie den Bewertungsbericht und die Messquelle TPS (Transaktionen pro Sekunde). Führen Sie Testmigrationen für repräsentative Daten aus, um die Computeebene, die Speicherebene und die Shardanzahl festzulegen. Führen Sie Leistungstests durch, um sicherzustellen, dass die Zielkonfiguration Ihren Anforderungen entspricht.

3. Verfeinern

Bereiten Sie Zielsammlungen mit entsprechenden Shardschlüsseln und Indizes vor, die Ihren Produktionsabfragemustern entsprechen. Wenn Sie mehrere Shards verwenden, entscheiden Sie, wie Sammlungen über Shards verteilt werden, um Lasten auszugleichen und Cross-Shard-Vorgänge zu minimieren.

4. Migrieren

Führen Sie den Migrationsauftrag aus, um Daten im Offline- oder Onlinemodus zu verschieben:

  • Offlinemigration: Erstellt eine Momentaufnahme der Quelle am Anfang und kopiert sie per Massenkopieren ins Ziel. Daten, die nach der Momentaufnahme in der Quelle hinzugefügt, aktualisiert oder gelöscht wurden, werden nicht kopiert. Erforderliche Ausfallzeiten hängen davon ab, wie lange die Massenkopie dauert.
  • Onlinemigration: Führt denselben Massenkopiervorgang wie bei der Offlinemigration aus, überwacht aber auch den Änderungsstream während des gesamten Prozesses. Während der Migration vorgenommene Änderungen werden auf das Ziel repliziert, sodass die erforderliche Ausfallzeit der Anwendung minimal ist. Erfordert einen Änderungsstream und ein ausreichend großes Oplog auf der Quellseite.

Tipp

Stellen Sie bei Online-Migrationen sicher, dass der Änderungsdatenstrom aktiviert ist und das Oplog auf der Quell-MongoDB entsprechend dimensioniert ist, um alle Änderungen während des Migrationsfensters zu erfassen.

Verfügbare Tools finden Sie unter Migrationstools.

5. Überprüfen

Überprüfen Sie, ob alle Daten kopiert wurden, einschließlich der neuesten Updates. Vergleichen Sie die Anzahl von Dokumenten, führen Sie eine beispielbasierte Überprüfung aus, und stellen Sie sicher, dass Indizes und Datenstrukturen den Erwartungen an das Ziel entsprechen. Verwenden Sie automatisierte Skripts, um die Überprüfung wiederholbar und konsistent zu machen.

6. Cutover

Verschieben Sie den Lesedatenverkehr zum Ziel und vergewissern Sie sich, dass keine Funktions- oder Leistungsprobleme auftreten. Nachdem die Lesevalidierung erfolgreich abgeschlossen wurde, verschieben Sie den Schreibdatenverkehr an das Ziel. Überwachen Sie das Umstellungsfenster genau auf mögliche Unregelmäßigkeiten.

Migrationstools

Die in diesem Artikel erläuterten Tools unterstützen Sie bei der Migration Ihrer MongoDB-Workloads aus den folgenden Quellen:

  • Virtueller MongoDB-Computer
  • MongoDB Atlas
  • AWS-DocumentDB

Azure DocumentDB-Migrationserweiterung

Erstellen und Verwalten Von Migrationsaufträgen in Visual Studio Code mit Azure DocumentDB-Migrationserweiterung (Public Preview) – einer Lösung, die für implicity entwickelt wurde, security und zero ausfallzeit.

Dieses Tool bietet eine klare schrittweise Anleitung, mit der Sie Arbeitsauslastungen ohne Dienstunterbrechungen migrieren können. Sie haben folgende Möglichkeiten:

  • Auswählen bestimmter Datenbanken und Sammlungen für die Migration
  • Ausführen aller Schritte in der vertrauten VS Code-Schnittstelle
  • Sicherstellen der sicheren Konnektivität während des gesamten Prozesses
  • Nutzen Sie null Kosten für die Nutzung der Erweiterung

Mit Azure DocumentDB-Migrationserweiterung können Sie Ihre Migrationsreise optimieren und gleichzeitig die Kontrolle und Sicherheit beibehalten – alles ohne zusätzliche Infrastruktur oder Komplexität.

Webanwendungstool (Online)

Optimieren Sie Ihre Migration zu Azure DocumentDB mit MongoMigrationwebBasedUtility einem Tool für Effizienz, Zuverlässigkeit und Benutzerfreundlichkeit. Das Repository bietet detaillierte, schrittweise Anleitungen für die Migration Ihrer Workloads. Dieses Tool bietet eine nahtlose Benutzeroberfläche für Online- und Offlinedatenmigrationen. Der Prozess ist benutzerfreundlich, wobei nur die Quell- und Zieldetails bereitgestellt werden müssen. Es ermöglicht Ihnen, Ihre MongoDB-Sammlungen mühelos zu migrieren und gleichzeitig Kontrolle, Sicherheit und Skalierbarkeit aufrechtzuerhalten und das volle Potenzial von Azure DocumentDB zu entsperren.

Zu den wichtigsten Features gehören:

  • Unterstützt die private Bereitstellung in Ihrem virtuellen Netzwerk für erhöhte Sicherheit
  • Automatische Wiederaufnahmefunktionen bei Verbindungsverlust oder vorübergehenden Fehlern
  • Benutzerfreundliche Benutzeroberfläche
  • Zugriff auf C#-Quellcode auf GitHub

Das Tool unterstützt flexible Bereitstellungsoptionen und funktioniert unabhängig voneinander ohne Abhängigkeiten von anderen Azure Ressourcen. Darüber hinaus bietet es skalierbare Leistung mit anpassbaren Azure Web App-Preisplänen.

Native MongoDB-Tools (offline)

Sie können auch die nativen MongoDB-Tools wie mongodump/mongorestore, mongoexport/mongoimport verwenden, um Datasets offline (ohne Liveänderungen replizieren) in Azure DocumentDB-Angebot zu migrieren.

Scenario Natives MongoDB-Tool
Verschieben einer Teilmenge von Datenbankdaten (JSON- oder CSV-basiert) mongoexport/mongoimport
Verschieben der gesamten Datenbank (BSON-basiert) mongodump/mongorestore
  • mongoexport/mongoimport ist die beste Kombination von Migrationstools, wenn Sie eine Teilmenge Ihrer MongoDB-Datenbank migrieren möchten.
    • Mit mongoexport können Sie Ihre vorhandenen Daten in eine lesbare JSON- oder CSV-Datei exportieren. Von mongoexport wird ein Argument zur Angabe der zu exportierenden Teilmenge Ihrer vorhandenen Daten akzeptiert.
    • mongoimport öffnet eine JSON- oder CSV-Datei und fügt den Inhalt in die Zieldatenbankinstanz ein (Azure DocumentDB in diesem Fall.).
    • JSON und CSV sind kein kompaktes Format; Sie könnten übermäßig viele Netzwerkgebühren verursachen, da mongoimport Daten an Azure DocumentDB sendet.
  • mongodump/mongorestore ist die beste Kombination von Migrationstools, wenn Sie Ihre gesamte MongoDB-Datenbank migrieren möchten. Das kompakte BSON-Format nutzt Netzwerkressourcen effizienter, da die Daten in Azure DocumentDB eingefügt werden.
    • Von mongodump werden Ihre vorhandenen Daten als BSON-Datei exportiert.
    • mongorestore importiert Ihr BSON-Dateiabbild in Azure DocumentDB.

Hinweis

Die nativen MongoDB-Tools können Daten nur so schnell verschieben, wie es die Hosthardware zulässt.

Bewährte Methoden für die Migration

Verwenden Sie diese bewährten Methoden, um Risiken zu reduzieren, die Kapazität genauer zu schätzen, die Migrationsgeschwindigkeit zu verbessern und den Übernahmevorgang sicher auszuführen.

Reduzieren von Fehlern

  • Verwenden Sie URL-codierte Kennwörter in Verbindungszeichenfolgen. Sonderzeichen wie @, #und : können die Analyse unterbrechen, wenn sie nicht codiert sind. Durch die URL-Codierung können Verbindungsfehler während der Bewertung und Migrationsausführung vermieden werden.

  • Führen Sie vor der Migration eine Vormigrationsbewertung aus. Die Bewertung hilft Ihnen, nicht unterstützte Features, Kompatibilitätslücken und potenzielle Blocker frühzeitig zu identifizieren. Beheben Sie Befunde vor der Migration, um die Überarbeitung während der Umstellung zu reduzieren.

  • Üben Sie die Migration und Umstellung vor der Produktion. Führen Sie eine oder mehrere Probenmigrationen in einer Nichtproduktionsumgebung aus. Die Praxis verbessert die Zeitliche Genauigkeit, die Teambereitschaft und das Vertrauen während der Produktionskürzung.

Die Infrastruktur genau bemessen

  • Führen Sie eine Testmigration für ein kleines, aber repräsentatives Dataset aus. Verwenden Sie die Testversion, um realistischen Durchsatz, Latenz und Ressourcenverbrauch zu erfassen. Eine repräsentative Stichprobe liefert bessere Schätzungen als synthetische Testdaten.

  • Extrapolieren Sie die Testergebnisse, um compute Tier, Storage Tier und die Anzahl der Shards zu schätzen. Verwenden Sie beobachtete Testmetriken, um die endgültigen Größenanforderungen basierend auf Ihrem vollständigen Datasetvolumen zu projizieren. Überprüfen Sie die Schätzung, ob sich ihre Produktionsdatenverteilung von der Stichprobe unterscheidet.

  • Verwenden Sie repräsentative Dokumentanzahl, Größe und Struktur mit produktionsähnlichen Einstellungen. Stimmen Sie die Produktionsindizierungs- und Shardingeinstellungen während der Testversion ab, um zu vermeiden, dass Kosten oder Migrationsdauer unterschätzt werden. Nichtproduktionseinstellungen können irreführende Ergebnisse erzeugen.

  • Schätzen Sie den Zielspeicher von Testergebnissen, anstatt davon auszugehen, dass Quell- und Zielgrößen gleich sind. Quell- und Zielspeicherbedarfe können sich aufgrund von Unterschieden in Indexdefinitionen und Datenlayout unterscheiden. Verwenden Sie Testergebnisse, um den Speicher mit einem sicheren Puffer zu planen.

Optimieren der Migrationsgeschwindigkeit

  • Migrieren Sie nach Möglichkeit innerhalb derselben Region. Das Beibehalten der Quelle und des Ziels in derselben Region reduziert die Netzwerklatenz und verbessert die Leistung der Datenübertragung. sie kann auch die regionenübergreifenden Datenübertragungskosten reduzieren.

  • Skalieren Sie während der Migration nach oben und reduzieren Sie nach der Umstellung. Beispielsweise können Sie den Zielcluster vorübergehend auf M200 skalieren, um den Migrationsdurchsatz zu erhöhen. Nach der Migration herunterskalieren Sie auf eine entsprechende Ebene innerhalb des unterstützten Bereichs für stabile Arbeitslasten.

  • Wählen Sie Datenträger mit höheren IOPS für schnellere Schreibvorgänge aus. Höhere IOPS können die Leistung der schreibintensiven Migration erheblich verbessern. Da die Datenträgergröße in der Regel später nicht skaliert werden kann, wählen Sie die Datenträgergröße während der Planung sorgfältig aus.

Planen Sie die Umstellung sorgfältig, da ein Rollback nicht möglich ist

  • Planen Sie Ausfallzeiten während eines Fensters mit geringem Datenverkehr. Die erforderlichen Ausfallzeiten hängen davon ab, wie lange Ihre Validierungsschritte dauern, nachdem die Migration aufholt. Ein Zeitraum mit geringem Verkehr reduziert die geschäftlichen Auswirkungen.

  • Beenden Sie unmittelbar vor der Umstellung alle Schreibvorgänge in die Quelle. Diesen Schritt verhindert kurzfristige Abweichungen zwischen Quelle und Ziel in letzter Minute. Bestätigen Sie, dass die Schreibaktivität vollständig angehalten ist, bevor Sie den Cutover-Vorgang abschließen.

  • Überprüfen Sie migrierte Daten, bevor Sie Schreiboperationen verschieben. Vergleichen Sie die Dokumentanzahl, und führen Sie dann den Vergleich von Zufälligen Beispieldokumenten aus (z. B. hashbasierte Prüfungen). Verwenden Sie ein Skript, wenn möglich, um die Überprüfung wiederholbar zu machen.

  • Aktualisieren Sie die Verbindungszeichenfolgen der Anwendung und testen Sie sie auf dem Zielsystem. Führen Sie die funktionale und Leistungsvalidierung für Ziel-Lesevorgänge durch und testen Sie den Datenverkehr, bevor Sie Produktions-Schreibvorgänge aktivieren. Vergewissern Sie sich, dass sich kritische Pfade wie erwartet verhalten.

  • Schreibdatenverkehr nur nach erfolgreicher Validierung verschieben. Leiten Sie Produktionsschreibvorgänge erst dann auf das Ziel um, wenn die Testergebnisse erfolgreich und konsistent sind. Verwenden Sie ein mehrstufiges Rollout, wenn Ihre Anwendungsarchitektur sie unterstützt.

Koordinieren sie über Teams hinweg für eine nahtlose Migration

  • Sicheres Buy-In von allen Beteiligten: App, Daten, Infrastruktur, Sicherheit, Netzwerk und Verwaltungsteams. Richten Sie die Erwartungen und Zuständigkeiten frühzeitig aus. Der gemeinsame Besitz reduziert Missverständnisse und Verzögerungen bei der Ausführung.

  • Verwenden Sie Planungs- und Testläufe, um Teamvertrauen zu schaffen und Verfahren zu verfeinern. Es gibt keine Abkürzungen zu einer reibungslosen Migration. Probeläufe machen Probleme in einer Umgebung mit geringerem Risiko sichtbar und geben Teams Übung.

  • Behandeln Sie die Umstellung als kritisch und zeitempfindlich. Die Umstellung erfordert eine präzise Koordination und klare Kommunikation. Benennen Sie Entscheidungsträger, und richten Sie Eskalationspfade ein, bevor sie beginnen.

  • Wissen Sie, wer jeden Schritt ausführen wird, wann es geschehen sollte, und wie Sie Ausfallzeiten minimieren können. Weisen Sie Zuständigkeiten zu, erstellen Sie Zeitpläne und vereinbaren Sie Erfolgskriterien. Dokumentieren Sie das Übergangs-Runbook und teilen Sie es mit allen Teilnehmern.

  • Koordinieren Sie alle Stakeholder, wenn die Umstellung Aktualisierungen für mehrere Workloads gleichzeitig erfordert. Terminieren Sie den Umstellungsvorgang während eines Wartungsfensters, das für alle Teams passt. Vermeiden Sie Freitagabende oder Zeiträume in der Nähe wichtiger Geschäftsereignisse.

  • Überspringen Sie keine Due Diligence-Schritte– es gibt keinen Rollback. Gründliche Überprüfung und sorgfältige Ausführung verhindern kostspielige Fehler. Akzeptieren Sie, dass die Umstellung Zeit in Anspruch nimmt; auf Geschwindigkeit fokussierte Abkürzungen schaffen Risiken.