Anleitung: MongoDB zu Azure Cosmos DB für MongoDB RU online migrieren mit Azure Database Migration Service
GILT FÜR: MongoDB
Wichtig
Migrationen zu Azure Cosmos DB for MongoDB (vCore) können mithilfe der MongoDB-Migrationserweiterung für Azure Data Studiodurchgeführt werden. Diese Erweiterung führt Azure Database Migration Service im Hintergrund aus. Beachten Sie, dass Migrationen zu Azure Cosmos DB for MongoDB (vCore) nicht mithilfe von Database Migration Service im Azure-Portal durchgeführt werden können.
Dieser MongoDB-Migrationsleitfaden ist Teil der Reihe zur MongoDB-Migration. Die wichtigen MongoDB-Migrationsschritte umfassen die Migrationsvorbereitung, die Migration und die Migrationsnachbereitung, wie nachfolgend dargestellt.
Ü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.
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. Für eine Offline-Migration, siehe Anleitung: MongoDB zu Azure Cosmos DB für MongoDB RU offline migrieren mit Azure Database Migration Service.
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 für MongoDB-Konto, und stellen Sie sicher, dass Fehler beim Einschränken von Raten für Azure Cosmos DB für MongoDB-Vorgänge aktiviert sind.
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.
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 Firewall-Appliance vor Ihren Quelldatenbanken verwenden, müssen Sie möglicherweise Firewall-Regeln hinzufügen, um Azure Database Migration Service für die Migration den Zugriff auf die Quelldatenbanken zu erlauben.
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 kürzerer Roundtripzeit (RTT) 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.
Ist das Feature deaktiviert, wird empfohlen, es wie im Anschluss gezeigt zu aktivieren
Registrieren des Ressourcenanbieters
Sie müssen den Microsoft.DataMigration-Ressourcenanbieter registrieren, bevor Sie Ihre erste Instanz von Database Migration Service erstellen.
Melden Sie sich beim Azure-Portal an. Suchen Sie nach Abonnements, und wählen Sie diese Option aus.
Wählen Sie das Abonnement aus, in dem Sie die Azure Database Migration Service-Instanz erstellen möchten, und klicken Sie dann auf Ressourcenanbieter.
Suchen Sie nach „Migration“, und wählen Sie dann Registrieren für Microsoft.DataMigration aus.
Erstellen einer Instanz
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.
Wählen Sie auf dem Bildschirm Azure Database Migration Service die Schaltfläche Erstellen aus.
Geben Sie auf dem Bildschirm Migrationsdienst erstellen einen Namen für den Dienst, das Abonnement und eine neue oder vorhandene Ressourcengruppe an.
Wählen Sie den Standort aus, an dem Sie die Azure Database Migration Service-Instanz erstellen möchten.
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.
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.
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.
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.
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.
Wählen Sie + Neues Migrationsprojekt aus.
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.
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
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.
Wählen Sie Speichern.
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
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).
Wählen Sie Speichern.
Zuordnen zu Zieldatenbanken
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 (Request Units, RUs) gemessen. Weitere Informationen: Azure Cosmos DB – Preise.
Wählen Sie Speichern.
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.
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.
Wählen Sie Speichern.
Geben Sie auf dem Bildschirm Migrationszusammenfassung im Textfeld Aktivitätsname einen Namen für die Migrationsaktivität an.
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.
Ü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.
Überprüfen der Daten in Azure Cosmos DB
Nehmen Sie Änderungen an Ihrer MongoDB-Quelldatenbank vor.
Stellen Sie eine Verbindung mit Azure Cosmos DB her, um zu überprüfen, ob die Daten vom MongoDB-Quellserver repliziert werden.
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.
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
Versuchen Sie, die Kapazitätsplanung für eine Migration zu Azure Cosmos DB durchzuführen?
- Wenn Sie lediglich die Anzahl der virtuellen Kerne und Server in Ihrem vorhandenen Datenbankcluster kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mithilfe von virtuellen Kernen oder virtuellen CPUs.
- Wenn Sie die typischen Anforderungsraten für Ihre aktuelle Datenbankworkload kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mit dem Azure Cosmos DB-Kapazitätsplaner