Migrieren eines lokalen MySQL-Servers mit Azure Database for MySQL Import CLI

Abgeschlossen

Es ist an der Zeit, den lokalen MySQL-Server zu Azure Database for MySQL (flexible Server) zu migrieren. Sie haben beschlossen, eine Offlinemigration durchzuführen, da Netzwerkeinstellungen eine direkte Verbindung zwischen den Quell- und Zielservern verhindern. Das folgende Diagramm fasst das Verfahren zusammen:

Screenshot Azure-import-cli-migration-procedure.

Voraussetzungen

  • Stellen Sie auf dem Quellserver sicher, dass die folgenden Einstellungen konfiguriert sind:

    • lower_case_table_names = 1  
      innodb_file_per_table = ON
      innodb_page_size = 16348 (MySQL Default)
      
    • Der Name des Systemtabellenbereichs sollte ibdata1 sein.

    • Die Größe des Systemtabellenraums sollte größer oder gleich 12 MB sein. (MySQL-Standardwert)

    • Nur das INNODB-Modul wird unterstützt.

  • Sie benötigen einen Azure Blob Storage-Container. Wenn Sie keinen geeigneten Container haben, erstellen Sie einen mit dieser Schnellstartanleitung. Sie benötigen das SAS-Token (Shared Access Signature) des Azure Blob-Containers. Um die Leistung zu optimieren, behalten Sie den flexiblen Speicher- und Zielserver in derselben Region.

  • Sie müssen Ihre Anwendung herunterfahren, um Änderungen an der Datenbank zu verhindern.

Prozedur

  1. Erstellen Sie eine physische Sicherung Ihrer MySQL-Datenbank. Wir verwenden das Open-Source-XtraBackup-Tool von Percona.

    1. Installieren Sie das Tool gemäß diesen Anweisungen (für MySQL 8.0).

    2. Erstellen Sie eine vollständige Sicherung, z. B.:

      xtrabackup --backup --target-dir=/data/backups/
      
  2. Laden Sie die Sicherungsdatei in Azure Blob Storage hoch, und führen Sie die folgenden Schritte aus.

  3. Lösen Sie den Import aus, indem Sie diesen Befehl nach dem Ausfüllen von Variablen ausführen. Sie können auch die Computegröße ändern, indem Sie Standard_D2ds_v4 ändern.

    1. az mysql flexible-server import create --data-source-type "azure_blob" --data-source $BLOB_DATA_URL --data-source-backup-dir "mysql_backup_percona" –-data-source-token $SAS_TOKEN --resource-group $RESOURCE_GROUP --name $FLEXIBLE_SERVER_NAME –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 8.0 -–location westus --auto-scale-iops Enabled
      
    2. Der Import dauert im Verhältnis zur Sicherungsdatei länger. Eine 1-GiB-Sicherungsdatei dauert etwa eine halbe Minute, während eine 1-TB-Datei etwa 23 Minuten dauert.

Beachten Sie die folgenden Einschränkungen:

  • Benutzer und Berechtigungen werden nicht migriert. Sie müssen Benutzer und Berechtigungen manuell abbilden, um Anmeldungen zu migrieren, nachdem der Importvorgang abgeschlossen ist.
  • Hohe Verfügbarkeit ist während des Imports nicht verfügbar. Aktivieren Sie daher nach Abschluss der Migration die hohe Verfügbarkeit.

Nachdem Sie Benutzer und Berechtigungen migriert haben, verbinden Sie Ihre Anwendungen mit dem flexiblen Server. Damit ist die Migration abgeschlossen.

Tipp

Wenn Sie eine Onlinemigration durchführen würden, hätten Sie den Export und Import wie oben durchgeführt und dann die Replikation von der Quelle bis zum Ziel eingerichtet. Wenn das Ziel vollständig von der Quelle erfasst wurde, hätten Sie per Cutover die Anwendung migriert, bevor Sie die Quelldatenbank heruntergefahren hätten.