Anleitung: MongoDB zu Azure Cosmos DB für MongoDB RU online migrieren mit Azure Database Migration Service

GILT FÜR: MongoDB

Wichtig

Lesen Sie den gesamten Leitfaden, bevor Sie die Migrationsschritte ausführen. Der Azure Database Migration Service unterstützt derzeit keine Migrationen zu einem Azure Cosmos DB for MongoDB vCore-Konto.

Dieser MongoDB-Migrationsleitfaden ist Teil der Reihe zur MongoDB-Migration. Die wichtigen MongoDB-Migrationsschritte umfassen die Migrationsvorbereitung, die Migration selbst und die Schritte nach der Migration, wie nachfolgend dargestellt.

Diagram of migration steps.

Übersicht über die Onlinedatenmigration von MongoDB zu Azure Cosmos DB mit DMS

Sie können Azure Database Migration Service zum Durchführen einer Onlinemigration (minimale Ausfallzeit) von Datenbanken aus einer lokalen oder cloudbasierten MongoDB-Instanz zu Azure Cosmos DB for MongoDB verwenden.

Dieses Tutorial veranschaulicht die Schritte, die mit der Verwendung von Azure Database Migration Service verbunden sind, um MongoDB-Daten zu Azure Cosmos DB zu migrieren:

  • Erstellen einer Instanz von Azure Database Migration Service
  • Erstellen Sie ein Migrationsprojekt.
  • Angeben der Quelle
  • Angeben des Ziels
  • Zuordnen zu Zieldatenbanken
  • Ausführen der Migration
  • Überwachen der Migration
  • Überprüfen der Daten in Azure Cosmos DB
  • Fertigstellen der Migration, wenn Sie dazu bereit sind

In diesem Tutorial migrieren Sie ein Dataset in MongoDB, das auf einem virtuellen Azure-Computer gehostet wird, mit Azure Database Migration Service zu Azure Cosmos DB for MongoDB. Hierbei kommt es nur zu minimaler Ausfallzeit. Wenn Sie noch keine MongoDB-Quelle eingerichtet haben, lesen Sie Installieren und Konfigurieren von MongoDB auf einem virtuellen Windows-Computer in Azure.

Hinweis

Die Verwendung von Azure Database Migration Service zum Ausführen einer Onlinemigration erfordert das Erstellen einer Instanz auf der Grundlage des Premium-Tarifs.

Wichtig

Für eine optimale Migration empfiehlt Microsoft die Erstellung einer Azure Database Migration Service-Instanz in derselben Azure-Region, in der sich auch die Zieldatenbank befindet. Die Verschiebung von Daten zwischen Regionen oder Geografien kann den Migrationsvorgang verlangsamen.

Tipp

In Azure Database Migration Service können Sie Ihre Datenbanken offline oder online migrieren. Bei einer Offlinemigration beginnt die Ausfallzeit der Anwendung mit dem Start der Migration. Um die Ausfallzeit auf die Zeit zu begrenzen, die für das Cutover zur neuen Umgebung nach der Migration erforderlich ist, führen Sie eine Onlinemigration durch. Wir empfehlen, dass Sie eine Offlinemigration testen, um zu bestimmen, ob die Ausfallzeit akzeptabel ist. Wenn die erwartete Ausfallzeit nicht akzeptabel ist, führen Sie eine Onlinemigration durch.

In diesem Artikel wird eine Onlinemigration von MongoDB zur Azure Cosmos DB for MongoDB beschrieben. Informationen zu einer Offlinemigration finden Sie unter Offlinemigration von MongoDB zu Azure Cosmos DB for MongoDB mit DMS.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Führen Sie die Schritte zur Migrationsvorbereitung aus. Schätzen Sie beispielsweise den Durchsatz, und wählen Sie einen Partitionsschlüssel und die Indizierungsrichtlinie aus.

  • Erstellen Sie ein Azure Cosmos DB for MongoDB-Konto, und stellen Sie sicher, dass SSR (Server-Side Retry, serverseitige Wiederholung) aktiviert ist.

    Hinweis

    DMS wird derzeit nicht unterstützt, wenn Sie zu einem Azure Cosmos DB for MongoDB-Konto migrieren, das im serverlosen Modus bereitgestellt wird.

  • Erstellen Sie ein Microsoft Azure Virtual Network für Azure Database Migration Service, indem Sie das Azure Resource Manager-Bereitstellungsmodell verwenden, das Site-to-Site-Konnektivität für Ihre lokalen Quellserver entweder über ExpressRoute oder über VPN bereitstellt.

    Hinweis

    Fügen Sie bei Verwendung von ExpressRoute mit Netzwerkpeering zu Microsoft während des Setups des virtuellen Netzwerks die folgenden Dienstendpunkte zu dem Subnetz hinzu, in dem der Dienst bereitgestellt werden soll:

    • Zieldatenbankendpunkt (z. B. SQL-Endpunkt, Azure Cosmos DB-Endpunkt usw.)
    • Speicherendpunkt
    • Service Bus-Endpunkt

    Diese Konfiguration ist erforderlich, weil Azure Database Migration Service über keine Internetverbindung verfügt.

  • Vergewissern Sie sich, dass die folgenden Kommunikationsports nicht durch Regeln für Netzwerksicherheitsgruppen (NSGs) des virtuellen Netzwerks blockiert werden: 53, 443, 445, 9354 und 10000-20000. Ausführlichere Informationen zur NSG-Datenverkehrsfilterung in einem virtuellen Netzwerk finden Sie im Artikel Filtern des Netzwerkdatenverkehrs mit Netzwerksicherheitsgruppen.

  • Öffnen Sie Ihre Windows-Firewall, damit Azure Database Migration Service auf den MongoDB-Quellserver zugreifen kann (standardmäßig TCP-Port 27017).

  • Wenn Sie eine Firewallappliance vor Ihren Quelldatenbanken verwenden, müssen Sie möglicherweise Firewallregeln hinzufügen, um Azure Database Migration Service den Zugriff auf die Quelldatenbanken für die Migration zu ermöglichen.

Konfigurieren serverseitiger Wiederholungen für Azure Cosmos DB für eine effiziente Migration

Kunden, die von MongoDB zu Azure Cosmos DB migrieren, profitieren von Ressourcengovernancefunktionen, die die vollständige Nutzung Ihres bereitgestellten Durchsatzes (RU/s) garantieren. Von Azure Cosmos DB können im Laufe der Migration ggf. Data Migration Service-Anforderungen gedrosselt werden, wenn bei ihnen die vom Container bereitgestellte Menge an RU/s überschritten wird. In diesem Fall muss die Anforderung wiederholt werden. Data Migration Service kann zwar Wiederholungsversuche durchführen, die Roundtripzeit für den Netzwerkhop zwischen Data Migration Service und Azure Cosmos DB wirkt sich allerdings insgesamt nachteilig auf die Antwortzeit der Anforderung aus. Durch die Verbesserung der Antwortzeit für gedrosselte Anforderungen kann die Gesamtdauer der Migration verkürzt werden. Das Feature Serverseitige Wiederholung von Azure Cosmos DB ermöglicht es dem Dienst, drosselungsbedingte Fehlercodes abzufangen und eine Wiederholung mit wesentlich kürzerer Roundtripzeit durchzuführen, wodurch sich die Antwortzeiten von Anforderungen erheblich verbessern.

Die Funktion „Serverseitige Wiederholung“ (Server Side Retry, SSR) finden Sie im Azure Cosmos DB-Portal auf dem Blatt Features.

Screenshot of MongoDB Server-Side Retry feature.

Ist das Feature deaktiviert, wird empfohlen, es wie im Anschluss gezeigt zu aktivieren:

Screenshot of MongoDB Server-Side Retry enable.

Registrieren des Ressourcenanbieters

Sie müssen den Microsoft.DataMigration-Ressourcenanbieter registrieren, bevor Sie Ihre erste Instanz von Database Migration Service erstellen.

  1. Melden Sie sich beim Azure-Portal an. Suchen Sie nach Abonnements, und wählen Sie diese Option aus.

    Show portal subscriptions

  2. Wählen Sie das Abonnement aus, in dem Sie die Azure Database Migration Service-Instanz erstellen möchten, und klicken Sie dann auf Ressourcenanbieter.

    Show resource providers

  3. Suchen Sie nach „Migration“, und wählen Sie dann Registrieren für Microsoft.DataMigration aus.

    Register resource provider

Erstellen einer Instanz

  1. Wählen Sie im Azure-Portal die Option + Ressource erstellen, suchen Sie nach Azure Database Migration Service, und wählen Sie dann Azure Database Migration Service aus der Dropdownliste aus.

    Azure Marketplace

  2. Wählen Sie auf dem Bildschirm Azure Database Migration Service die Schaltfläche Erstellen aus.

    Create Azure Database Migration Service instance

  3. Geben Sie auf dem Bildschirm Migrationsdienst erstellen einen Namen für den Dienst, das Abonnement und eine neue oder vorhandene Ressourcengruppe an.

  4. Wählen Sie den Standort aus, an dem Sie die Azure Database Migration Service-Instanz erstellen möchten.

  5. Wählen Sie ein vorhandenes virtuelles Netzwerk aus, oder erstellen Sie ein neues.

    Das virtuelle Netzwerk erteilt Azure Database Migration Service Zugriff auf die MongoDB-Quellinstanz und auf das Azure Cosmos DB-Zielkonto.

    Weitere Informationen zum Erstellen eines virtuellen Netzwerks im Azure-Portal finden Sie im Artikel Erstellen eines virtuellen Netzwerks im Azure Portal.

  6. Wählen Sie eine SKU aus dem Premium-Tarif aus.

    Hinweis

    Onlinemigrationen werden nur bei Verwendung des Premium-Tarifs unterstützt. Weitere Informationen zu Kosten und Tarifen finden Sie in der Preisübersicht.

    Configure Azure Database Migration Service instance settings

  7. Wählen Sie Erstellen, um den Dienst zu erstellen.

Erstellen eines Migrationsprojekts

Nachdem der Dienst erstellt wurde, suchen Sie diesen im Azure-Portal, öffnen Sie ihn, und erstellen Sie anschließend ein neues Migrationsprojekt.

  1. Wählen Sie im Azure-Portal Alle Dienste, suchen Sie nach Azure Database Migration Service, und wählen Sie dann Azure Database Migration Service aus.

    Locate all instances of Azure Database Migration Service

  2. Suchen Sie auf dem Bildschirm Azure Database Migration Services nach dem Namen der von Ihnen erstellten Azure Database Migration Service-Instanz, und wählen Sie die Instanz aus.

    Alternativ hierzu können Sie die Azure Database Migration Service-Instanz auch über den Suchbereich im Azure-Portal ermitteln.

    Use the Search pane in the Azure portal

  3. Wählen Sie + Neues Migrationsprojekt aus.

  4. Geben Sie im Fenster Neues Migrationsprojekt einen Projektnamen ein. Wählen Sie im Textfeld Quellservertyp die Option MongoDB und im Textfeld Zielservertyp die Option Azure Cosmos DB for MongoDB aus. Wählen Sie dann für Aktivitätstyp auswählen die Option Onlinedatenmigration [Vorschauversion] aus.

    Create Database Migration Service project

  5. Klicken Sie auf Speichern, und wählen Sie dann Aktivität erstellen und ausführen, um das Projekt zu erstellen und die Migrationsaktivität auszuführen.

Angeben von Quelldetails

  1. Geben Sie im Bildschirm Source details (Quelldetails) die Verbindungsdetails für die MongoDB-Server-Quellinstanz an.

    Wichtig

    Azure Cosmos DB als Quelle wird von Azure Database Migration Service nicht unterstützt.

    Es gibt drei Modi, um eine Verbindung mit einer Quelle herzustellen:

    • Standardmodus, in dem ein vollqualifizierter Domänenname oder eine IP-Adresse, eine Portnummer und die Anmeldeinformationen für die Verbindung akzeptiert werden.

    • Verbindungszeichenfolgen-Modus, in dem eine MongoDB-Verbindungszeichenfolge akzeptiert wird. Dies ist im Artikel Connection String URI Format (URI-Format von Verbindungszeichenfolgen) beschrieben.

    • Daten aus Azure-Speicher, wobei eine Blobcontainer-SAS-URL akzeptiert wird. Aktivieren Sie die Option Das Blob enthält BSON-Speicherabbilder, wenn für den Blobcontainer vom MongoDB-Tool bsondump erstellte BSON-Speicherabbilder vorhanden sind. Deaktivieren Sie sie, wenn der Container JSON-Dateien enthält.

      Bei Verwendung dieser Option muss die Verbindungszeichenfolge für das Speicherkonto folgendes Format haben:

      https://blobnameurl/container?SASKEY
      

      Beachten Sie außerdem den folgenden Aspekt (abhängig von der Art der Sicherungsinformationen in Azure Storage):

      • Bei BSON-Sicherungen müssen die Daten im Blobcontainer im bsondump-Format vorliegen, sodass Datendateien in Ordnern platziert werden, die nach den enthaltenden Datenbanken im Format „sammlung.bson“ benannt sind. Gegebenenfalls vorhandene Metadatendateien müssen im Format „sammlung.metadata.json“ benannt werden.

      • Bei JSON-Sicherungen müssen die Dateien im Blobcontainer in Ordnern platziert werden, die nach den enthaltenden Datenbanken benannt sind. Innerhalb der einzelnen Datenbankordner müssen Datendateien in einem Unterordner namens „data“ platziert und im Format „sammlung.json“ benannt werden. Gegebenenfalls vorhandene Metadaten müssen in einem Unterordner namens „metadata“ platziert und ebenfalls im Format „sammlung.json“ benannt werden. Die Metadatendateien müssen in dem Format vorliegen, das vom MongoDB-Tool „bsondump“ generiert wird.

    Wichtig

    Es wird nicht empfohlen, ein selbstsigniertes Zertifikat für den MongoDB-Server zu verwenden. Wenn dennoch eines verwendet wird, stellen Sie die Verbindung mit dem Server im Verbindungszeichenfolgen-Modus her, und stellen Sie sicher, dass Ihre Verbindungszeichenfolge in Anführungszeichen eingeschlossen ist.

    &sslVerifyCertificate=false
    

    Sie können die IP-Adresse für Situationen verwenden, in denen eine DNS-Namensauflösung nicht möglich ist.

    Specify source details

  2. Wählen Sie Speichern aus.

    Hinweis

    Die Quellserveradresse sollte die Adresse des primären Replikats sein, wenn die Quelle eine Replikatgruppe ist, und die Adresse des Routers, wenn es sich bei der Quelle um einen MongoDB-Cluster mit Sharding handelt. Für einen MongoDB-Cluster mit Sharding muss Azure Database Migration Service eine Verbindung mit den einzelnen Shards im Cluster herstellen können, und hierzu kann es erforderlich sein, die Firewall auf weiteren Computern zu öffnen.

Angeben von Zieldetails

  1. Geben Sie auf dem Bildschirm Zieldetails für die Migration die Verbindungsdetails für das Azure Cosmos DB-Zielkonto an (also für das vorab bereitgestellte Azure Cosmos DB for MongoDB-Konto, zu dem Sie die MongoDB-Daten migrieren).

    Specify target details

  2. Wählen Sie Speichern aus.

Zuordnen zu Zieldatenbanken

  1. Ordnen Sie im Bildschirm Map to target databases (Zu Zieldatenbanken zuordnen) die Quell- und die Zieldatenbank für die Migration einander zu.

    Wenn die Zieldatenbank denselben Datenbanknamen wie die Quelldatenbank enthält, wählt Azure Database Migration Service die Zieldatenbank standardmäßig aus.

    Wenn die Zeichenfolge Erstellen neben dem Datenbanknamen angezeigt wird, hat Azure Database Migration Service die Zieldatenbank nicht gefunden, und der Dienst erstellt die Datenbank für Sie.

    Geben Sie einen RU-Wert für den Durchsatz an, falls Sie an diesem Punkt der Migration den Durchsatz für die Datenbank freigeben möchten. In Azure Cosmos DB können Sie den Durchsatz entweder auf Datenbankebene oder für jede Sammlung individuell bereitstellen. Der Durchsatz wird in Anforderungseinheiten (RUs) gemessen. Weitere Informationen: Azure Cosmos DB – Preise.

    Map to target databases

  2. Wählen Sie Speichern aus.

  3. Erweitern Sie auf dem Einstellungsbildschirm Sammlung die Auflistung der Sammlungen, und überprüfen Sie dann die Liste der Sammlungen, die migriert werden.

    Azure Database Migration Service wählt automatisch alle Sammlungen aus, die in der MongoDB-Quellinstanz vorhanden sind, jedoch nicht im Azure Cosmos DB-Zielkonto. Wenn Sie Sammlungen, die bereits Daten enthalten, erneut migrieren möchten, müssen Sie die Sammlungen in diesem Fenster explizit auswählen.

    Sie können die Anzahl von RUs angeben, die die Sammlungen verwenden sollen. In den meisten Fällen ist ein Wert zwischen 500 (mindestens 1.000 für Sammlungen mit Sharding) und 4.000 ausreichend. Azure Database Migration Service schlägt intelligente Standardwerte basierend auf der Sammlungsgröße vor.

    Hinweis

    Führen Sie die Datenbankmigration und -sammlung parallel und ggf. unter Verwendung mehrerer Azure Database Migration Service-Instanzen aus, um die Ausführung zu beschleunigen.

    Sie können auch einen Shardschlüssel angeben, um die Partitionierung in Azure Cosmos DB für eine optimale Skalierbarkeit zu nutzen. Überprüfen Sie unbedingt die bewährten Methoden für die Auswahl eines Shard-/Partitionsschlüssels. Wenn Sie nicht über einen Partitionsschlüssel verfügen, können Sie immer _id als Shardschlüssel verwenden, um den Durchsatz zu verbessern.

    Select collections tables

  4. Wählen Sie Speichern aus.

  5. Geben Sie auf dem Bildschirm Migrationszusammenfassung im Textfeld Aktivitätsname einen Namen für die Migrationsaktivität an.

    Migration summary

Ausführen der Migration

  • Wählen Sie Migration ausführen aus.

    Das Fenster „Migrationsaktivität“ wird angezeigt, und der Status der Aktivität wird angegeben.

    Activity status

Überwachen der Migration

  • Klicken Sie auf dem Bildschirm „Migrationsaktivität“ auf Aktualisieren, um die Anzeige zu aktualisieren, bis der Status der Migration Wird wiedergegeben lautet.

    Hinweis

    Sie können die Aktivität zum Abrufen von Details der Migrationsmetriken auf Datenbank- und Sammlungsebene auswählen.

    Activity status replaying

Überprüfen der Daten in Azure Cosmos DB

  1. Nehmen Sie Änderungen an Ihrer MongoDB-Quelldatenbank vor.

  2. Stellen Sie eine Verbindung mit Azure Cosmos DB her, um zu überprüfen, ob die Daten vom MongoDB-Quellserver repliziert werden.

    Screenshot that shows where you can verify that the data was replicated.

Fertigstellen der Migration

  • Nachdem alle Dokumente von der Quelle auf dem Azure Cosmos DB-Ziel verfügbar sind, können Sie im Kontextmenü der Migrationsaktivität die Option Fertig stellen wählen, um die Migration abzuschließen.

    Mit dieser Aktion wird die Wiedergabe aller ausstehenden Änderungen durchgeführt und die Migration fertiggestellt.

    Screenshot that shows the Finish menu option.

Optimierung nach der Migration

Nach der Migration der in einer MongoDB-Datenbank gespeicherten Daten zu Azure Cosmos DB for MongoDB können Sie eine Verbindung mit Azure Cosmos DB herstellen und die Daten verwalten. Sie können nach der Migration auch andere Optimierungsschritte ausführen und beispielsweise die Indizierungsrichtlinie optimieren, die Standardkonsistenzebene aktualisieren oder die globale Verteilung für Ihr Azure Cosmos DB-Konto konfigurieren. Weitere Informationen finden Sie im Artikel zur Optimierung nach der Migration.

Zusätzliche Ressourcen

Nächste Schritte