Migrieren einer lokalen MySQL-Datenbank zu Azure

Abgeschlossen

Sobald sich ein Unternehmen dazu entschließt, zu Azure Database for MySQL zu migrieren, besteht der nächste Schritt darin, die Migration lokaler Datenbanken zu planen und die Tools auszuwählen, mit denen die Daten verschoben werden sollen.

Nachdem Sie gelernt haben, wie MySQL mit Azure Database for MySQL in Azure unterstützt und skaliert wird, sollten Sie nun überlegen, wie Sie Ihre vorhandenen lokalen Datenbanken migrieren.

In dieser Lerneinheit erfahren Sie, wie Sie im Azure-Portal eine Instanz des Azure Database for MySQL-Diensts erstellen. Wenn Sie viele Instanzen des Diensts erstellen müssen, können Sie mit der Azure CLI ein Skript für den Prozess erstellen.

Erstellen einer Azure Database for MySQL-Instanz im Portal

Klicken Sie im Azure-Portal im Azure Marketplace auf Datenbanken, und wählen Sie Azure Database for MySQL aus.

Abbildung: Azure Database for MySQL-Element im Azure Marketplace

Geben Sie die Details für den Dienst ein. Dazu gehören:

  • Servername. Hierbei muss es sich um einen eindeutigen Namen handeln, der zwischen 3 und 63 Zeichen lang ist und nur Kleinbuchstaben, Zahlen und Bindestriche enthält.
  • Datenquelle: Wenn Sie zu Migrationszwecken einen neuen Server erstellen, klicken Sie auf Keine. Mit der Option Sicherung können Sie in diesem Dienst eine Sicherung wiederherstellen, die für eine andere Instanz von Azure Database for MySQL erstellt wurde.
  • Administratorbenutzername: Dies ist der Name eines Benutzerkontos, das mit Administratorberechtigungen erstellt wird. Azure erstellt einige Konten, die von Azure selbst verwendet werden, und auch andere Namen sind vorbehalten. Die folgenden Namen können von Ihnen nicht verwendet werden: azure_superuser, admin, administrator, root, guest und public.
  • Kennwort: Kennwörter müssen zwischen 8 und 128 Zeichen lang sein. Sie sollten aus einer Mischung aus Groß- und Kleinbuchstaben, Zahlen und nicht alphanumerischen Zeichen bestehen. Azure Database for MySQL unterstützt derzeit nur die Kennwortauthentifizierung. Eine Integration mit Microsoft Entra ID ist noch nicht verfügbar.
  • Version: Wählen Sie die Version aus, die der der lokalen Datenbank entspricht, die Sie migrieren.
  • Compute + Speicher: Klicken Sie auf Server konfig., um den Tarif festzulegen und die Ressourcen anzugeben, die Sie für den Dienst benötigen. Die verfügbaren Optionen haben Sie bereits in Lerneinheit 2 kennengelernt. Denken Sie daran: Wenn Sie als Tarif Universell oder Arbeitsspeicheroptimiert auswählen, skalieren Sie die Anzahl virtueller Prozessorkerne später hoch oder herunter. Die Speichermenge können Sie jedoch nicht reduzieren. Diese kann nach Erstellung des Servers nur erhöht werden.

Screenshot einer Beispielkonfiguration für Azure Database for MySQL im Azure-Portal

Klicken Sie zum Bereitstellen des Diensts auf Überprüfen + erstellen. Die Bereitstellung dauert mehrere Minuten.

Klicken Sie nach der Bereitstellung des Diensts auf die Option Verbindungssicherheit, und fügen Sie die Firewallregeln hinzu, die benötigt werden, damit Clients eine Verbindung herstellen können. Sehen Sie sich hierzu noch mal die Beschreibung unter Clientkonnektivität in Lerneinheit 2 an. Sie müssen auch die Option Zugriff auf Azure-Dienste erlauben auswählen.

Erstellen einer Azure Database for MySQL-Instanz mit der Azure CLI

Erstellen Sie mit dem Befehl az mysql server create eine Instanz von Azure Database for MySQL. Die Anweisung unten zeigt ein Beispiel für die Erstellung einer MySQL-Instanz. Die meisten Parameter sind selbsterklärend, bis auf die folgenden:

  • sku-name: Der Wert für diesen Parameter ist eine Kombination aus dem Tarif (B für „Basic“, GP für „Universell“ (General Purpose) und MO für „Arbeitsspeicheroptimiert“ (Memory Optimized)), der Computegeneration (Gen4 oder Gen5) und der Anzahl virtueller CPU-Kerne. Im Beispiel unten wird der Server mit dem Tarif „Universell“ und 4 CPU-Kernen der Generation Gen5 erstellt.
  • storage-size: Hierbei handelt es sich um die erforderliche Datenträger-Speichermenge in Megabyte. Im folgenden Beispiel werden 10 Gigabyte zugeordnet.
az mysql server create \
  --name contoso-MySQL-server \
  --resource-group MySQLrg \
  --admin-user contosoadmin \
  --admin-password 7Hh7*ku5k$$£jhk \
  --sku-name GP_Gen5_4 \
  --storage-size 10240

Durchführen einer Offlinemigration

Bei einer Offlinemigration wird eine Momentaufnahme der Quelldatenbank zu einem bestimmten Zeitpunkt erstellt. Diese Daten werden dann in die Zieldatenbank kopiert. Alle nach der Momentaufnahme an den Quelldaten vorgenommenen Änderungen werden nicht in die Zieldatenbank übernommen.

Wenn Sie eine Offlinemigration zu Azure Database for MySQL durchführen möchten, haben Sie mindestens zwei Möglichkeiten:

Export und Import

Sie können mit Tools wie MySQL Workbench eine Datenbank aus MySQL exportieren und in Azure Database for MySQL importieren. Dies ist bei zahlreichen Szenarios nützlich:

  • Sie möchten auswählen, welche Tabellen importiert werden sollen.
  • Sie möchten auswählen, welche Datenbankobjekte exportiert und importiert werden sollen, einschließlich Ansichten, gespeicherter Prozeduren, Einschränkungen und Funktionen.
  • Außerdem möchten Sie Daten aus anderen Quellen migrieren. Ein Beispiel wäre, dass Sie Daten aus Textdateien hinzufügen und mysqlimport verwenden müssen, um diese Daten Ihrer Datenbank als Tabellen hinzuzufügen.

Sie können einen Export und Import mit MySQL Workbench durchführen. Klicken Sie im Menü Server auf Datenexport oder Data Import (Datenimport).

Hinweis

Sie können auch mysqldump verwenden, um bestimmte Tabellen zu exportieren, indem Sie deren Namen nach dem Datenbanknamen auflisten.

Weitere Informationen finden Sie unter Migrieren der MySQL-Datenbank durch Import und Export.

Sichern und Wiederherstellen

Verwenden Sie Sicherung und Wiederherstellung, wenn Sie die gesamte Datenbank effizient verschieben möchten.

Bei diesem Ansatz sind einige Punkte zu berücksichtigen:

  • Verwenden Sie die Option exclude-triggers, um das Auslösen von Triggern bei der Wiederherstellung zu verhindern.
  • Sichern Sie mit der Option single-transaction die gesamte Datenbank in einer einzelnen Transaktion.
  • Deaktivieren Sie mit der Option disable-keys Einschränkungen für Fremdschlüssel, die während des Prozesses ausgelöst werden.
  • Verschieben Sie mit der Option defer-table-indexes die Indexerstellung auf einen Zeitpunkt nach dem Abschluss der Wiederherstellung.

Weitere Informationen zu mysqldump finden Sie unter mysqldump – A Database Backup Program (mysqldump: Ein Programm für Datenbanksicherungen).

Hinweis

Sie können mysqldump auch verwenden, um bestimmte Tabellen zu exportieren, indem Sie deren Namen nach dem Datenbanknamen auflisten.

Azure Database Migration Service (DMS)

Neben Offlinemigrationen zu Azure Database for MySQL unterstützt DMS regionsübergreifende, ressourcenübergreifende und abonnementübergreifende Migrationen, sodass Sie eine Region, Ressourcengruppe und ein Abonnement für den Zielserver auswählen können, der sich von dem für Ihren Quellserver unterscheidet.

Migrieren mithilfe von Sicherung und Wiederherstellung

Führen Sie die folgenden Schritte aus, um eine Datenbank mit dem Sicherungs- und Wiederherstellungsansatz zu migrieren.

  1. Exportieren Sie die Daten mit dem Befehl mysqldump in eine andere Datei:

    mysqldump -h [host name] -u [username] -p[password] [database name] > db_data.sql
    

    Hier handelt es sich bei „db_data.sql“ um ein SQL-Skript, das Sie mithilfe eines Text-Editors bearbeiten.

  2. Erstellen Sie die Zieldatenbank in Azure Database for MySQL. Nutzen Sie dafür die Azure CLI:

    az mysql db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group]
    
  3. Importieren Sie die Daten mit dem Befehl mysql in die Zieldatenbank:

    mysql -h [host name] -u [username] -p[password] [database name] < db_data.sql
    

Durchführen einer Onlinemigration

DMS unterstützt auch die Onlinemigration zu Azure Database for MySQL. Für die Onlinemigration sollten Sie die Universell-Computeressource mit 16 virtuellen Kernen für den flexiblen Zielserver auswählen, um die Migration zu beschleunigen. Skalieren Sie zurück zur gewünschten Computegröße für den Zielserver, nachdem die Migration abgeschlossen ist, basierend auf den Details in der folgenden Tabelle.

Single Server: Tarif Single Server: Virtuelle Kerne Flexible Server: Computegröße Flexible Server: Computeebene
Basic 1 Burstfähig Standard_B1s
Basic 2 Burstfähig Standard_B2s
Universell 4 Universell Standard_D4ds_v4
Universell 8 Universell Standard_D8ds_v4

Weitere Informationen zur Onlinemigration zu Azure Database for MySQL finden Sie unter Tutorial: Onlinemigration von Azure Database for MySQL – Single Server zu Flexible Server mithilfe von DMS über das Azure-Portal.