Share via


Migrieren einer lokalen oder VM-basierten MySQL-Workload zu Azure Database for MySQL – Flexibler Server mithilfe der Import-CLI von Azure Database for MySQL (Public Preview)

Mit der Import-CLI von Azure Database for MySQL für externe Migrationen (Public Preview) können Sie Ihre lokale oder VM-basierte MySQL-Workload nahtlos zu Azure Database for MySQL – Flexibler Server migrieren. Es wird eine benutzerseitig bereitgestellte physische Sicherungsdatei verwendet, und die physischen Datendateien des Quellservers werden auf dem Zielserver wiederhergestellt. Somit wird ein einfacher und schneller Migrationspfad bereitgestellt. Nach dem Importvorgang können Sie die Vorteile von „Flexibler Server“ nutzen, einschließlich besserer Preise und Leistung, einer präzisen Steuerung über die Datenbankkonfiguration und benutzerdefinierter Wartungsfenster.

Auf der Grundlage von Benutzereingaben übernimmt das Feature die Verantwortung für die Bereitstellung Ihres flexiblen Zielservers und die anschließende Wiederherstellung des benutzerseitig bereitgestellten physischen Backups des Quellservers, das im Azure Blob-Speicherkonto gespeichert ist, in der Zielinstanz des flexiblen Servers.

In diesem Tutorial wird gezeigt, wie Sie den Befehl der Azure Database for MySQL-Import-CLI verwenden, um eine lokale oder VM-basierte MySQL-Workload zu Azure Database for MySQL – Flexibler Server migrieren.

Starten von Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel durchführen können. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock die Option Ausprobieren aus. Sie können Cloud Shell auch auf einer separaten Browserregisterkarte öffnen, indem Sie zu https://shell.azure.com/bash navigieren. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie die Blöcke anschließend in Cloud Shell ein, und wählen Sie Eingabe, um sie auszuführen.

Wenn Sie die Befehlszeilenschnittstelle lieber lokal installieren und verwenden möchten, benötigen Sie für dieses Tutorial die Azure CLI-Version 2.54.0 oder höher. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Einstellung

Sie müssen sich mit dem Befehl az sign-in bei Ihrem Konto anmelden. Beachten Sie die Eigenschaft ID, die auf die Abonnement-ID Ihres Azure-Kontos verweist.

az login

Wählen Sie mithilfe des Befehls az account set das entsprechende Abonnement unter Ihrem Konto aus, in dem Sie den flexiblen Zielserver bereitstellen möchten. Notieren Sie aus der Ausgabe von az login den Wert für ID, um ihn im Befehl als Wert für das Argument subscription zu verwenden. Verwenden Sie az account list, um alle Abonnements abzurufen.

az account set --subscription <subscription id>

Voraussetzungen

  • Der Quellserver sollte über die folgenden Parameter verfügen:
    • Lower_case_table_names = 1
    • Innodb_file_per_table = ON
    • Der Name des Systemtabellenbereichs muss „ibdata1“ lauten.
    • Die Größe des Systemtabellenbereichs muss größer oder gleich 12 MB sein. (MySQL-Standardwert)
    • Innodb_page_size = 16348 (MySQL-Standardwert)
    • Nur die INNODB-Engine wird unterstützt.
  • Erstellen Sie eine physische Sicherung Ihrer MySQL-Workload mithilfe von Percona XtraBackup. Im Anschluss sind die Schritte zur Verwendung von Percona XtraBackup zum Erstellen einer vollständigen Sicherung aufgeführt:
    • Installieren Sie Percona XtraBackup auf der lokalen oder VM-Workload. Installieren Sie für die MySQL-Modulversion v5.7 Percona XtraBackup, Version 2.4, siehe Installieren von Percona XtraBackup 2.4. Installieren Sie für die MySQL-Modulversion v8.0 Percona XtraBackup, Version 8.0, siehe Installieren von Percona XtraBackup 8.0.
    • Anweisungen zum Erstellen einer vollständigen Sicherung mit Percona XtraBackup 2.4 finden Sie unter Vollständige Sicherung. Anweisungen zum Erstellen einer vollständigen Sicherung mit Percona XtraBackup 8.0 finden Sie unter [Vollständige Sicherung] (https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html).
    • Erstellen Sie einen Azure-Blobcontainer, und rufen Sie das SAS-Token (über das Azure-Portal oder die Azure CLI) für den Container ab. Erteilen Sie über die Dropdownliste Berechtigungen unbedingt Berechtigungen vom Typ „Hinzufügen“, „Erstellen“ und „Schreiben“. Kopieren Sie die Werte für das SAS-Token und die URL des Blobs, und fügen Sie sie an einem sicheren Ort ein. Diese Angaben werden nur einmal angezeigt und können nicht mehr abgerufen werden, nachdem das Fenster geschlossen wurde.
  • Laden Sie die Datei mit der vollständigen Sicherung in Ihre Azure Blob Storage-Instanz hoch. Führen Sie diese Schritte aus.
  • Zum Durchführen einer Onlinemigration erfassen und speichern Sie die Bin-Protokollposition der Sicherungsdatei, die mithilfe von Percona XtraBackup erstellt wurde. Führen Sie dazu den Befehl cat xtrabackup_info aus, und kopieren Sie die Positionsausgabe von „bin_log“.

Begrenzungen

  • Die Quellserverkonfiguration wird nicht migriert. Sie müssen den flexiblen Zielserver entsprechend konfigurieren.
  • Benutzer*innen und Berechtigungen werden nicht als Teil des Azure Database for MySQL-Imports migriert. Sie müssen eine manuelle Sicherungsdatei von Benutzer*innen und Berechtigungen erstellen, bevor Sie den Azure Database for MySQL-Import initiieren, um Anmeldungen nach dem Importvorgang zu migrieren, indem Sie sie auf dem flexiblen Zielserver wiederherstellen.
  • Flexible Server mit aktivierter Hochverfügbarkeit (High Availability, HA) werden als Server mit deaktivierter Hochverfügbarkeit zurückgegeben, um die Geschwindigkeit des Migrationsvorgangs nach der Importmigration zu erhöhen. Aktivieren Sie Hochverfügbarkeit für den flexiblen Zielserver nach der Migration.

Empfehlungen für eine optimale Migration

  • Erwägen Sie, die Bereitstellung des Azure Blob Storage-Kontos und des flexiblen Zielservers in derselben Region beizubehalten, um eine bessere Importleistung zu erzielen.
  • Empfohlene SKU-Konfiguration für die Zielinstanz von Azure Database for MySQL – Flexibler Server:
    • Das Festlegen der SKU „Burstfähig“ für das Ziel wird nicht empfohlen, um die Migrationszeit beim Ausführen des Azure Database for MySQL-Importvorgangs zu optimieren. Es wird empfohlen, die Skalierung auf „Universell“ oder „Unternehmenskritisch“ für den Importvorgang durchzuführen. Nach dem Import können Sie auf die SKU „Burstfähig“ herunterskalieren.

Auslösen eines Azure Database for MySQL-Importvorgangs zum Migrieren von Azure Database for MySQL – Flexibler Server

Lösen Sie mit dem az mysql flexible-server import create-Befehl einen Azure Database for MySQL-Importvorgang aus. Der folgende Befehl erstellt einen flexiblen Zielserver und führt den Import auf Instanzebene von der Sicherungsdatei zum Ziel mithilfe des lokalen Kontexts der Azure CLI aus:

az mysql flexible-server import create --data-source-type
                                --data-source
                                --data-source-sas-token
                                --resource-group
                                --name
                                --sku-name
                                --tier
                                --version
                                --location
                                [--data-source-backup-dir]
                                [--storage-size]
                                [--mode]
                                [--admin-password]
                                [--admin-user]
                                [--auto-scale-iops {Disabled, Enabled}]
                                [--backup-identity]
                                [--backup-key]
                                [--backup-retention]
                                [--database-name]
                                [--geo-redundant-backup {Disabled, Enabled}]
                                [--high-availability {Disabled, SameZone, ZoneRedundant}]
                                [--identity]
                                [--iops]
                                [--key]
                                [--private-dns-zone]
                                [--public-access]
                                [--resource-group]
                                [--standby-zone]
                                [--storage-auto-grow {Disabled, Enabled}]
                                [--subnet]
                                [--subnet-prefixes]
                                [--tags]
                                [--vnet]
                                [--zone]


The following example takes in the data source information for your source MySQL server’s backup file and target Flexible Server information, creates a target Flexible Server named `test-flexible-server` in the `westus` location and performs an import from backup file to target. 

azurecli-interactive
az mysql flexible-server import create --data-source-type "azure_blob" --data-source "https://onprembackup.blob.core.windows.net/onprembackup" --data-source-backup-dir "mysql_backup_percona" –-data-source-token "{sas-token}" --resource-group "test-rg"  --name "test-flexible-server" –-sku-name Standard_D2ds_v4  --tier GeneralPurpose –-version 5.7 -–location "westus”

Hier sind die Details zu den obigen Argumenten aufgeführt:

Einstellung Beispielwert Beschreibung
data-source-type azure_blob Der Typ der Datenquelle, die als Quellziel zum Auslösen des Azure Database for MySQL-Imports dient. Zulässige Werte: [azure_blob]. Beschreibung der zulässigen Werte: azure_blob: Azure Blob Storage
data-source {resourceID} Die Ressourcen-ID des Azure-Blobcontainers
data-source-backup-dir mysql_percona_backup Das Verzeichnis des Azure Blob Storage-Containers, in den die Sicherungsdatei hochgeladen wurde. Dieser Wert ist nur erforderlich, wenn die Sicherungsdatei nicht im Stammordner des Azure Blob-Containers gespeichert ist.
data-source-sas-token {sas-token} Das SAS-Token (Shared Access Signature), das generiert wird, um Zugriff auf den Import über den Azure Blob Storage-Container zu gewähren.
resource-group test-rg Der Name der Azure-Ressourcengruppe für die Zielinstanz von Azure Database for MySQL – Flexibler Server.
Modus Offline Der Modus des Azure Database for MySQL-Imports. Akzeptierte Werte: [Offline]; Standardwert: Offline.
location westus Der Azure-Standort für die Quellinstanz von Azure Database for MySQL – Flexible Server.
name test-flexible-server Geben Sie einen eindeutigen Namen für Ihre Azure Database for MySQL Flexible Server-Instanz ein. Der Servername darf nur Kleinbuchstaben, Zahlen und den Bindestrich (-) enthalten. Es muss zwischen drei und 63 Zeichen lang sein. Hinweis: Dieser Server wird in demselben Abonnement, derselben Ressourcengruppe und derselben Region wie die Quelle bereitgestellt.
admin-user adminuser Der Benutzername für die Administratoranmeldung für Ihr Azure Database for MySQL Flexible Server-Ziel. Dieser darf nicht azure_superuser, admin, administrator, root, guest oder public lauten.
admin-password password Das Administratorbenutzer-Kennwort für Ihr Azure Database for MySQL Flexible Server-Ziel. Es muss zwischen acht und 128 Zeichen lang sein. Ihr Kennwort muss Zeichen aus drei Kategorien enthalten: englische Großbuchstaben, englische Kleinbuchstaben, Zahlen und nicht alphanumerische Zeichen.
sku-name GP_Gen5_2 Geben Sie den Namen des Tarifs und der Computekonfiguration für Ihr Azure Database for MySQL Flexible Server-Ziel ein. Folgt der Konvention „{Tarif} {Computegeneration} {virtuelle Kerne}“ in Kurzform. Weitere Informationen finden Sie unter Azure Database for MySQL – Tarife.
Ebene Burstfähig Computeebene des Azure Database for MySQL Flexible Server-Ziels. Akzeptierte Werte: Burstable, GeneralPurpose, MemoryOptimized; Standardwert: Burstable.
public-access 0.0.0.0 Bestimmt den öffentlichen Zugriff für das Azure Database for MySQL Flexible Server-Ziel. Geben Sie eine einzelne IP-Adresse oder einen IP-Adressbereich an, die/der in der Liste zulässiger IP-Adressen enthalten sein soll. Der IP-Adressbereich muss durch Bindestriche getrennt sein und darf keine Leerzeichen enthalten. Die Angabe von 0.0.0.0 ermöglicht den öffentlichen Zugriff von allen in Azure bereitgestellten Ressourcen auf Ihren Server. Wenn sie auf „Keine“ festgelegt wird, wird der Server im öffentlichen Zugriffsmodus festgelegt, aber es wird keine Firewallregel erstellt.
VNET myVnet Name oder ID eines neuen oder vorhandenen virtuellen Netzwerks. Wenn Sie ein VNet aus einer anderen Ressourcengruppe oder einem anderen Abonnement verwenden möchten, geben Sie eine Ressourcen-ID an. Der Name muss zwischen 2 und 64 Zeichen lang sein. Der Name muss mit einem Buchstaben oder einer Ziffer beginnen, auf einen Buchstaben, eine Ziffer oder einen Unterstrich enden und darf nur Buchstaben, Ziffern, Unterstriche, Punkte und Bindestriche enthalten.
subnet mySubnet Name oder Ressourcen-ID eines neuen oder vorhandenen Subnetzes. Wenn Sie ein Subnetz aus einer anderen Ressourcengruppe oder einem anderen Abonnement verwenden möchten, geben Sie anstelle des Namens die Ressourcen-ID an. Beachten Sie, dass das Subnetz an flexibleServers delegiert wird. Nach der Delegierung kann dieses Subnetz nicht für andere Typen von Azure-Ressourcen verwendet werden.
private-dns-zone myserver.private.contoso.com Der Name oder die ID der neuen oder vorhandenen privaten DNS-Zone. Sie können die private DNS-Zone aus derselben Ressourcengruppe, einer anderen Ressourcengruppe oder einem anderen Abonnement verwenden. Wenn Sie eine Zone aus einer anderen Ressourcengruppe oder einem anderen Abonnement verwenden möchten, geben Sie eine Ressourcen-ID an. Die CLI erstellt eine neue private DNS-Zone innerhalb derselben Ressourcengruppe, in der sich auch das virtuelle Netzwerk befindet, wenn sie nicht von Benutzer*innen bereitgestellt wird.
Schlüssel Schlüsselbezeichner von testKey Die Ressourcen-ID des primären Schlüsseltresors für die Datenverschlüsselung.
identity testidentity Der Name oder die Ressourcen-ID der vom Benutzer zugewiesenen Identität für die Datenverschlüsselung.
storage-size 32 Die Speicherkapazität des Azure Database for MySQL Flexible Server-Ziels. Der Mindestwert beträgt 20 GiB, der Höchstwert 16 TiB.
tags key=value Geben Sie den Namen der Azure-Ressourcengruppe an.
version 5.7 Serverhauptversion des Azure Database for MySQL Flexible Server-Ziels.
Hochverfügbarkeit ZoneRedundant Aktivieren (ZoneRedundant oder SameZone) oder deaktivieren Sie die Hochverfügbarkeitsfunktion für das Azure Database for MySQL Flexible Server-Ziel. Akzeptierte Werte: Disabled, SameZone, ZoneRedundant; Standardwert: Disabled.
Zone 1 Verfügbarkeitszone, in der die Ressource bereitgestellt werden soll.
standby-zone 3 Die Verfügbarkeitszoneninformationen des Standbyservers, wenn Hochverfügbarkeit aktiviert ist.
storage-auto-grow Aktiviert Aktivieren oder deaktivieren Sie das automatische Speicherwachstum für das Azure Database for MySQL Flexible Server-Ziel. Der Standardwert ist „Enabled“. Akzeptierte Werte: Disabled, Enabled; Standardwert: Enabled.
iops 500 Anzahl der IOPS, die für das Azure Database for MySQL Flexible Server-Ziel zugeordnet werden sollen. Sie erhalten eine bestimmte Menge an kostenlosen IOPS basierend auf der Compute- und Speicherbereitstellung. Der Standardwert für IOPS sind kostenlose IOPS. Weitere Informationen zu IOPS basierend auf Compute und Speicher finden Sie unter „IOPS in Azure Database for MySQL Flexible Server“.

Migration zu Flexibler Server mit minimaler Downtime

Um eine Onlinemigration nach Abschluss des anfänglichen Seedings aus der Sicherungsdatei mithilfe des Azure Database for MySQL-Imports durchzuführen, können Sie die Datenreplikation zwischen Quelle und Ziel mit diesen Schritten konfigurieren. Sie können die Bin-Protokollposition verwenden, die beim Erstellen der Sicherungsdatei mithilfe von Percona XtraBackup erfasst wird, um die auf der Bin-Protokollposition basierende Replikation einzurichten.

Wie lange dauert es, bis der Azure Database for MySQL-Import meine SQL-Instanz migriert hat?

Benchmarkleistung basierend auf der Speichergröße

Speichergröße für Sicherungsdatei Importdauer
1 GiB 0 Min. 23 Sek.
10 GiB 4 Min. 24 Sek.
100 GB 10 Min. 29 Sek.
500 GiB 13 Min. 15 Sek.
1 TB 22 Min. 56 Sek.
10 TB 2 Std. 5 Min. 30 Sek.

Mit zunehmender Speichergröße wächst auch der Zeitaufwand für das Kopieren von Daten fast in einem linearen Verhältnis. Es ist jedoch wichtig zu wissen, dass die Kopiergeschwindigkeit durch Netzwerkschwankungen erheblich beeinträchtigt werden kann. Daher sollten die hier bereitgestellten Daten nur als Referenz betrachtet werden.

Nächste Schritte