Tutorial: Durchführen einer Offlinemigration von MySQL zu Azure Database for MySQL mithilfe von DMS

Sie können Azure Database Migration Service verwenden, um per Hochgeschwindigkeits-Datenmigrationsfunktion eine nahtlose Datenbankmigration einer externen MySQL-Instanz zu Azure Database for MySQL durchzuführen. In diesem Tutorial wird eine Beispieldatenbank unter Verwendung der Offlinemigrationsaktivität in Azure Database Migration Service von einer lokalen Instanz von MySQL 5.7 zu Azure Database for MySQL (v5.7) migriert. In dem Artikel wird zwar davon ausgegangen, dass die Quelle eine MySQL-Datenbankinstanz ist und es sich beim Ziel um Azure Database for MySQL handelt, er kann jedoch auch für die Migration zwischen Azure Database for MySQL-Instanzen verwendet werden. Hierzu müssen lediglich der Name und die Anmeldeinformationen des Quellservers geändert werden. Darüber hinaus wird auch die Migration von MySQL-Servern mit niedrigerer Version (ab v5.6) zu höheren Versionen unterstützt.

Hinweis

Eine PowerShell-basierte skriptfähige Version dieser Migration finden Sie unter Durchführen einer Offlinemigration von MySQL zu Azure Database for MySQL mit PowerShell und Azure Database Migration Service.

Amazon Relational Database Service (RDS) für MySQL und Amazon Aurora (MySQL-basiert) werden ebenfalls als Quellen für die Migration unterstützt.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen Sie eine DMS-Instanz.
  • Erstellen Sie ein MySQL-Migrationsprojekt in DMS.
  • Migrieren Sie ein MySQL-Schema mithilfe von DMS.
  • Ausführen der Migration
  • Überwachen der Migration

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Sie benötigen ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

  • Eine lokale MySQL-Datenbank mit der Version 5.7. Laden Sie bei Bedarf die Version 5.7 von MySQL Community Edition herunter, und installieren Sie sie.

  • 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. Weitere Informationen zum Erstellen eines virtuellen Netzwerks finden Sie in der Dokumentation zu Virtual Network und insbesondere in den Schnellstartartikeln mit Schritt-für-Schritt-Anleitungen.

    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.

  • Stellen Sie sicher, dass die NSG-Regeln (Netzwerksicherheitsgruppen) des virtuellen Netzwerks nicht den ausgehenden Port 443 von ServiceTag für ServiceBus, Storage und AzureMonitor blockieren. Ausführlichere Informationen zur NSG-Datenverkehrsfilterung in einem virtuellen Netzwerk finden Sie im Artikel Filtern des Netzwerkdatenverkehrs mit Netzwerksicherheitsgruppen.

  • Öffnen Sie Ihre Windows-Firewall, um Verbindungen aus dem virtuellen Netzwerk für Azure Database Migration Service zuzulassen und den Zugriff auf den MySQL-Quellserver zu ermöglichen (standardmäßig TCP-Port 3306).

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

  • Erstellen Sie für die Azure Database for MySQL-Zielinstanz eine Firewallregel auf Serverebene, oder konfigurieren Sie VNet-Dienstendpunkte, um den Zugriff auf die Zieldatenbanken durch das virtuelle Netzwerk für Azure Database Migration Service zu ermöglichen.

  • Die MySQL-Quellinstanz muss unter einer unterstützten Version von MySQL Community Edition ausgeführt werden. Führen Sie zum Ermitteln der Version der MySQL-Instanz im MySQL-Hilfsprogramm oder in MySQL Workbench den folgenden Befehl aus:

    SELECT @@VERSION;
    
  • Azure Database for MySQL unterstützt nur InnoDB-Tabellen. Informationen zum Konvertieren von MyISAM-Tabellen in InnoDB finden Sie im Artikel Converting Tables from MyISAM to InnoDB (Konvertieren von Tabellen von MyISAM zu InnoDB).

  • Der Benutzer muss über Berechtigungen zum Lesen von Daten aus der Quelldatenbank verfügen.

  • Um eine Schemamigration erfolgreich abzuschließen, benötigt der Benutzer, der die Migration durchführt, auf dem Quellserver die folgenden Berechtigungen:

    • Die Berechtigung „SELECT“ für die Quelle auf Serverebene.
    • Wenn Ansichten migriert werden, müssen Benutzer über die Berechtigung „SHOW VIEW“ auf dem Quellserver und die Berechtigung „CREATE VIEW“ auf dem Zielserver verfügen.
    • Bei der Migration von Triggern müssen Benutzer über die Berechtigung „TRIGGER“ auf dem Quell- und dem Zielserver verfügen.
    • Wenn Routinen (Prozeduren und/oder Funktionen) migriert werden, müssen Benutzer über die Berechtigung „CREATE ROUTINE“ und die Berechtigung „ALTER ROUTINE“ auf Serverebene für das Ziel verfügen.
    • Bei der Migration von Ereignissen müssen Benutzer über die Berechtigung „EVENT“ auf dem Quell- und dem Zielserver verfügen.
    • Wenn Benutzer/Anmeldungen migriert werden, müssen Benutzer über die Berechtigung „CREATE USER“ auf dem Zielserver verfügen.
    • Berechtigung „DROP“ auf Serverebene für das Ziel, um Tabellen abzulegen, die möglicherweise bereits vorhanden sind. Beispiel: Wiederholen einer Migration.
    • Berechtigung „REFERENCES“ auf Serverebene für das Ziel, um Tabellen mit Fremdschlüsseln zu erstellen.
    • Bei der Migration zu MySQL 8.0 müssen Benutzer über die Berechtigung „SESSION_VARIABLES_ADMIN“ auf dem Zielserver verfügen.
    • Berechtigung „CREATE“ für das Ziel auf Serverebene.
    • Berechtigung „INSERT“ für das Ziel auf Serverebene.
    • Berechtigung „UPDATE“ für das Ziel auf Serverebene.
    • Berechtigung „DELETE“ für das Ziel auf Serverebene.

Festlegen der Größe der Azure Database for MySQL-Zielinstanz

Wenn Sie den Azure Database for MySQL-Zielserver für schnelleres Laden von Daten mithilfe von Azure Database Migration Service vorbereiten möchten, werden die folgenden Serverparameter und Konfigurationsänderungen empfohlen:

  • Legen Sie „max_allowed_packet“ auf „1073741824“ (also 1 GB) fest, um Verbindungsprobleme aufgrund langer Zeilen zu vermeiden.

  • Legen Sie slow_query_log auf „OFF“ fest, um die langsame Abfrageprotokollierung zu deaktivieren. Dadurch entfällt der zusätzliche Aufwand, der durch eine langsame Abfrageprotokollierung während des Ladens von Daten verursacht wird.

  • Legen Sie „query_store_capture_mode“ auf „NONE“ fest, um den Abfragespeicher zu deaktivieren. Dadurch entfällt der Aufwand durch das Sampling von Aktivitäten durch den Abfragespeicher.

  • innodb_buffer_pool_size: „innodb_buffer_pool_size“ kann nur durch Hochskalieren von Computeressourcen für Azure Database for MySQL-Server erhöht werden. Skalieren Sie den Server im Portal auf der Tarifseite während der Migration auf die SKU „Universell“ mit 64 virtuellen Kernen hoch, um „innodb_buffer_pool_size“ zu erhöhen.

  • Ändern Sie „innodb_io_capacity“ und „innodb_io_capacity_max“ in den Serverparametern im Azure-Portal auf „9.000“, um die E/A-Auslastung zu verbessern und die Migrationsgeschwindigkeit damit zu optimieren.

  • Ändern Sie „innodb_write_io_threads“ und „innodb_write_io_threads“ in den Serverparametern im Azure-Portal auf „4“, um die Migrationsgeschwindigkeit zu erhöhen.

  • Skalieren Sie die Speicherebene hoch. Die IOPS für den Azure Database for MySQL-Server erhöhen sich progressiv mit dem Anstieg der Speicherebene.

    • Bei der Bereitstellungsoption für Einzelserver empfiehlt es sich, für schnellere Ladevorgänge die Speicherebene zu erhöhen, um die bereitgestellten IOPs zu steigern.
    • Bei der Bereitstellungsoption für flexible Server wird empfohlen, IOPS unabhängig von der Speichergröße zu skalieren (erhöhen oder verringern).
    • Die Speichergröße kann nur zentral hochskaliert und nicht herunterskaliert werden.
  • Wählen Sie die Computegröße und die Computeebene für den flexiblen Zielserver auf der Grundlage des Tarifs und der virtuellen Kerne des Ausgangsservers anhand der Details in der folgenden Tabelle aus:

    Single Server: Tarif Single Server: Virtuelle Kerne Flexible Server: Computegröße Flexible Server: Computeebene
    Basic: 1 1 Universell Standard_D16ds_v4
    Basic: 1 2 Universell Standard_D16ds_v4
    Universell: 1 4 Universell Standard_D16ds_v4
    Universell: 1 8 Universell Standard_D16ds_v4
    Universell 16 Universell Standard_D16ds_v4
    Universell 32 Universell Standard_D32ds_v4
    Universell 64 Universell Standard_D64ds_v4
    Arbeitsspeicheroptimiert 4 Unternehmenskritisch Standard_E4ds_v4
    Arbeitsspeicheroptimiert 8 Unternehmenskritisch Standard_E8ds_v4
    Arbeitsspeicheroptimiert 16 Unternehmenskritisch Standard_E16ds_v4
    Arbeitsspeicheroptimiert 32 Unternehmenskritisch Standard_E32ds_v4

    1 Wählen Sie für die Migration die Compute-Instanz vom Typ Universell mit 16 virtuellen Kernen für den flexiblen Zielserver aus, um die Migration zu beschleunigen. Skalieren Sie nach Abschluss der Migration wieder auf die gewünschte Computegröße für den Zielserver, indem Sie die Empfehlungen zur Computegröße im Abschnitt „Durchführen von Aktivitäten nach der Migration“ weiter unten in diesem Artikel befolgen.

Nach Abschluss der Migration können Sie die Serverparameter und die Konfiguration auf die Werte zurücksetzen, die für Ihre Workload erforderlich sind.

Einrichten von DMS

Wenn Ihr flexibler Zielserver bereitgestellt und konfiguriert ist, müssen Sie als nächstes DMS einrichten, um Ihre Single Server-Instanz zu einer Flexible Server-Instanz zu migrieren.

Registrieren des Ressourcenanbieters

Führen Sie die folgenden Schritte aus, um den Microsoft.DataMigration-Ressourcenanbieter zu registrieren.

  1. Bevor Sie Ihre erste DMS-Instanz erstellen, melden Sie sich am Azure-Portal an, suchen Sie nach Abonnements und wählen Sie diese aus.

    Screenshot: Ausgewählte Abonnements aus dem Azure Marketplace

  2. Wählen Sie das Abonnement aus, das Sie zum Erstellen der DMS-Instanz verwenden möchten, und wählen Sie dann Ressourcenanbieter aus.

    Screenshot: Ausgewählter Ressourcenanbieter

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

    Screenshot: Registrieren Ihres Ressourcenanbieters

Erstellen einer Database Migration Service-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.

    Screenshot des Azure Marketplace

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

    Screenshot: Erstellen einer Azure Database Migration Service-Instanz.

  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 einen Tarif aus, und wechseln Sie zum Bildschirm „Netzwerk“. Die Offlinemigrationsfunktion ist nur im Premium-Tarif verfügbar.

    Weitere Informationen zu Kosten und Tarifen finden Sie in der Preisübersicht.

    Screenshot von „Basis Einstellungen des Azure Database Migration Service konfigurieren“.

  5. Wählen Sie ein bereits vorhandenes virtuelles Netzwerk aus der Liste aus, oder geben Sie einen Namen für ein neu zu erstellendes virtuelles Netzwerk an. Wechseln Sie zum Bildschirm „Überprüfen und erstellen“. Auf dem Bildschirm „Tags“ können Sie dem Dienst optional Tags hinzufügen.

    Das virtuelle Netzwerk erteilt Azure Database Migration Service Zugriff auf die SQL Server-Quellinstanz und die Azure SQL-Datenbank-Zielinstanz.

    Screenshot von „Netzwerkeinstellungen des Azure Database Migration Service konfigurieren“.

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

  6. Überprüfen Sie die Konfiguration, und wählen Sie Erstellen aus, um den Dienst zu erstellen.

    Screenshot von „Azure Database Migration Service 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.

    Screenshot von „Suchen aller Instanzen von Azure Database Migration Service“.

  2. Wählen Sie in den Suchergebnissen Ihre Migrationsdienstinstanz und anschließend + Neues Migrationsprojekt aus.

    Screenshot von „Neues Migrationsprojekt erstellen“.

  3. Geben Sie auf dem Bildschirm Neues Migrationsprojekt einen Namen für das Projekt an, und wählen Sie im Auswahlfeld Typ des Quellservers die Option MySQL, im Auswahlfeld Typ des Zielservers die Option Azure Database for MySQL und im Auswahlfeld für die Art der Migrationsaktivität die Option Datenmigration aus. Wählen Sie Aktivität erstellen und ausführen aus.

    Screenshot: Erstellen eines Database Migration Service-Projekts.

    Alternativ können Sie Nur Projekt erstellen auswählen, um das Migrationsprojekt jetzt zu erstellen und die Migration später durchzuführen.

Konfigurieren des Migrationsprojekts

  1. Geben Sie auf dem Bildschirm Quelle auswählen die Verbindungsdetails für die MySQL-Quellinstanz an, und wählen Sie anschließend Weiter: Ziel auswählen>> aus.

    Screenshot des Bildschirms „Quellendetails hinzufügen“.

  2. Geben Sie auf dem Bildschirm Ziel auswählen die Verbindungsdetails für die Azure Database for MySQL-Zielinstanz an, und wählen Sie anschließend Weiter: Datenbanken auswählen>> aus.

    Screenshot des Bildschirms „Zieldetails hinzufügen“.

  3. Ordnen Sie auf dem Bildschirm Datenbanken auswählen die Quell- und die Zieldatenbank für die Migration zu, und wählen Sie anschließend Weiter: Migrationseinstellungen konfigurieren>> aus. Sie können die Option Make Source Server Read Only (Quellserver als schreibgeschützt festlegen) auswählen, um die Quelle als schreibgeschützt festzulegen. Beachten Sie jedoch, dass es sich hierbei um eine Einstellung auf Serverebene handelt. Wenn diese Option ausgewählt ist, wird der gesamte Server schreibgeschützt, nicht nur die ausgewählten Datenbanken.

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

    Screenshot von „Datenbank-Detailbildschirm auswählen“.

  4. Wählen Sie auf dem Bildschirm Migrationseinstellungen konfigurieren die Tabellen aus, die in die Migration einbezogen werden sollen, und wählen Sie Weiter: Zusammenfassung>> aus. Wenn die Zieltabellen Daten enthalten, werden sie nicht standardmäßig ausgewählt. Sie können aber explizit ausgewählt werden. In diesem Fall werden sie dann vor Beginn der Migration abgeschnitten.

    Screenshot von „Tabellenbildschirm auswählen“.

  5. Geben Sie auf dem Bildschirm Zusammenfassung im Textfeld Aktivitätsname einen Namen für die Migrationsaktivität ein, und überprüfen Sie anschließend die Zusammenfassung, um sicherzustellen, dass die Ziel- und Quelldetails Ihren vorherigen Angaben entsprechen.

    Screenshot von „Migrationszusammenfassung“.

  6. Wählen Sie Migration starten aus. Das Fenster „Migrationsaktivität“ wird angezeigt, und der Status der Aktivität lautet Initialisierung. Der Status ändert sich in Wird ausgeführt, wenn die Tabellenmigrationen beginnen.

    Screenshot von Ausgeführten Migration.

Überwachen der Migration

  1. Wählen Sie auf dem Bildschirm für die Migrationsaktivität die Option Aktualisieren aus, um die Anzeige zu aktualisieren und den Fortschritt in Form der Anzahl abgeschlossener Tabellen anzuzeigen.

  2. Auf dem Aktivitätsbildschirm können Sie auf den Datenbanknamen klicken, um den Status der einzelnen Tabellen anzuzeigen, während diese migriert werden. Wählen Sie zum Aktualisieren der Anzeige die Option Aktualisieren aus.

    Screenshot von Überwachung der Migration.

Fertigstellen der Migration

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

    Screenshot der abgeschlossenen Migration.

Aktivitäten nach der Migration

Die Migrationsübernahme in einer Offlinemigration ist ein anwendungsabhängiger Prozess und wird in diesem Dokument nicht behandelt. Nach der Migration sind jedoch folgende Aktivitäten erforderlich:

  1. Erstellen Sie Anmeldungen, Rollen und Berechtigungen gemäß den Anwendungsanforderungen.
  2. Erstellen Sie alle Trigger in der Zieldatenbank neu, die im Rahmen des Schritts vor der Migration extrahiert wurden.
  3. Testen Sie zur Zertifizierung der Migration die Integrität der Anwendung mit der Zieldatenbank.

Bereinigen von Ressourcen

Wenn Sie Database Migration Service nicht mehr benötigen, können Sie den Dienst wie folgt löschen:

  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.

    Screenshot der Suche nach allen Instanzen von DMS.

  2. Wählen Sie in den Suchergebnissen Ihre Migrationsdienstinstanz und anschließend Dienst löschen aus.

    Screenshot: Migrationservice löschen.

  3. Geben Sie im Bestätigungsdialogfeld den Namen des Diensts in das Textfeld TYPE THE DATABASE MIGRATION SERVICE NAME (NAME DER DATABASE MIGRATION SERVICE-INSTANZ EINGEBEN) ein, und wählen Sie Löschen aus.

    Screenshot von „Bestätigen des Löschens des Migrationsdiensts“.