Migrieren von „Azure Database for MySQL – Einzelserver“ zu „Flexibler Server“ mit der Azure MySQL-Import-CLI

GILT FÜR: Azure Database for MySQL – Single Server

Mit der Azure Database for MySQL-Import-CLI (allgemein verfügbar) können Sie „Azure Database for MySQL – Einzelserver“ nahtlos zu „Flexibler Server“ migrieren. Es wird Technologie zur Momentaufnahmensicherung- und -wiederherstellung verwendet, um einen einfachen und schnellen Migrationspfad zum Wiederherstellen der physischen Datendateien des Quellservers auf dem Zielserver bereitzustellen. 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.

Basierend auf Benutzereingaben wird die Verantwortung für die Bereitstellung Ihrer Flexible Server-Zielinstanz und dann die Sicherung des Quellservers und die Wiederherstellung des Ziels übernommen. Dabei werden die Datendateien, Serverparameter, kompatiblen Firewallregeln und Servereigenschaften (tier, version, sku-name, storage-size, location, geo-redundant-backup, public-access, tags, auto grow, backup-retention-days, admin-user, admin-password) aus der Einzelserverinstanz in die Instanz des flexiblen Servers kopiert.

Die Azure Database for MySQL-Import-CLI unterstützt eine Migration mit nahezu keiner Downtime. Dabei wird zuerst ein Offlineimportvorgang ausgeführt, und anschließend können Benutzer*innen die Datenreplikation zwischen Quelle und Ziel einrichten, um eine Onlinemigration durchzuführen.

In diesem Tutorial erfahren Sie, wie Sie mithilfe des Azure Database for MySQL-Import-CLI-Befehls Ihre Instanz von „Azure Database for MySQL – Einzelserver“ zu „Flexibler Server“ migrieren.

Neuigkeiten

  • Azure Database for MySQL Import operation for Single Servers with Legacy Storage Architecture (General Purpose Storage V1) is now supported. Sie müssen den Parameter log_bin=ON für Ihre Einzelserverinstanz mit Legacyspeicher festlegen, bevor Sie den Importvorgang initiieren. Erstellen Sie dazu ein Lesereplikat für Ihre Einzelserverinstanz, und löschen Sie es dann. Dieser Vorgang legt den Parameter log_bin auf EIN fest, und Sie können dann einen Importvorgang auslösen, um zu flexiblem Server zu migrieren. (Februar 2024)

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 mit dem Befehl az account set das spezifische Abonnement aus, in dem sich die Quelle Azure Database for MySQL – Single Server unter Ihrem Konto befindet. 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. Wenn Sie über mehrere Abonnements verfügen, wählen Sie das entsprechende Abonnement aus, in dem sich die Quelle Azure Database for MySQL – Single Server befindet. Verwenden Sie az account list, um alle Abonnements abzurufen.

az account set --subscription <subscription id>

Beschränkungen und Voraussetzungen

  • Wenn Ihre Quell-Azure-Datenbank für MySQL Single Server über eine einfache SKU verfügt, sollten Sie die SKU im Importbefehl als "Allgemein" angeben, um Speicherprobleme zu verringern. Sie können die SKU nach der Migration wieder in Burstable für die migrierte Flexible Server-Instanz ändern.

  • Wenn Ihre Azure Database for MySQL Single Server-Quelldatenbank die Modulversion v8.x aufweist, stellen Sie sicher, dass Sie die .NET-Clienttreiberversion Ihres Quellservers auf 8.0.32 aktualisieren, um Codierungsinkompatibilitäten nach der Migration zu Flexible Server zu vermeiden.

  • Die Quelle Azure Database for MySQL – Single Server und das Ziel Azure Database for MySQL – Flexible Server müssen sich im selben Abonnement, in derselben Ressourcengruppe und Region befinden, und ihre MySQL-Version muss identisch sein. Der Import über Abonnements, Ressourcengruppen, Regionen und Versionen hinweg ist nicht möglich.

  • Von der Azure Database for MySQL-Import-CLI werden die MySQL-Versionen 5.7 und 8.0 unterstützt. Wenn Sie eine andere MySQL-Hauptversion auf einem Einzelserver verwenden, stellen Sie sicher, dass Sie Ihre Version in Ihrer Einzelserverinstanz aktualisieren, bevor Sie den Importbefehl auslösen.

  • Wenn in der Instanz von „Azure Database for MySQL – Einzelserver“ der Serverparameter „lower_case_table_names“ auf 2 festgelegt ist und Ihre Anwendung Partitionstabellen verwendet hat, führt der Importvorgang zu beschädigten Partitionstabellen. Es wird empfohlen, „lower_case_table_names" für Ihre Azure Database for MySQL – Single Server-Instanz auf 1 festzulegen, um den MySQL-Importvorgang fehlerfrei fortzusetzen.

  • Der Import in eine vorhandene Instanz von „Azure MySQL – Flexibler Server“ wird nicht unterstützt. Der CLI-Befehl initiiert den Import einer neuen Azure MySQL Flexible Server-Instanz.

  • Wenn der flexible Zielserver beim Aktualisieren der CLI-Befehlsparameter ohne Hochverfügbarkeit (Hochverfügbarkeit deaktiviert) bereitgestellt wird, kann er später auf Hochverfügbarkeit in gleicher Zone, aber nicht auf zonenredundante Hochverfügbarkeit umgestellt werden.

  • Für Einzelserverinstanzen mit aktiviertem CMK erfordert der Befehl für den Azure Database for MySQL-Import, dass Sie obligatorische Eingabeparameter zum Aktivieren von CMK in der Zielinstanz von „Flexibler Server“ bereitstellen.

  • Wenn in der Single Server-Instanz „Infrastructure Double Encryption“ aktiviert ist, wird empfohlen, kundenseitig verwaltete Schlüssel (CMK) in der Flexible Server-Zielinstanz zu aktivieren, um ähnliche Funktionen zu unterstützen. Sie können mit Eingabeparametern der Azure Database for MySQL-Import-CLI oder auch nach der Migration CMK auf dem Zielserver aktivieren.

  • Wenn die Instanz „Abfragespeicher“ aktiviert ist, wird empfohlen, langsame Abfrageprotokolle für die Flexible Server-Zielinstanz zu aktivieren, um ähnliche Funktionen zu unterstützen. Sie können langsame Abfrageprotokolle auf dem flexiblen Zielserver konfigurieren, indem Sie die folgenden Schritte ausführen. Anschließend können Sie Abfrageerkenntnisse unter Verwendung der Arbeitsmappenvorlage anzeigen.

  • Wichtige Überlegungen bei der Verwendung von Virtual Network (VNet) und Azure Database for MySQL Import CLI: - Vermeiden Sie gleichzeitige Vorgänge auf VNet: Wenn Sie einen Importvorgang ausführen, verzichten Sie darauf, alle anderen Vorgänge auf demselben VNet auszuführen. Wenn andere Vorgänge ausgeführt werden, warten Sie, bis sie vollständig abgeschlossen sind, bevor Sie den Importvorgang starten. Dies soll mögliche Konflikte oder Ressourcenkonflikte verhindern. - Beschränken Sie gleichzeitige Servermigrationen: Wenn Sie planen, mehrere Server zu migrieren, die sich unter demselben VNet befinden, initiieren Sie diese Migrationen nicht gleichzeitig. Dies kann dazu führen, dass die Vorgänge in VNet blockiert werden, was zu erweiterten Wartezeiten und sogar Timeouts führt.

  • Wenn Ihre Single Server-Instanz eine Legacyspeicherarchitektur (General Purpose Storage V1) aufweist, müssen Sie den Parameter log_bin=ON für Ihre Single Server-Instanz festlegen, bevor Sie den Importvorgang initiieren. Erstellen Sie dazu ein Lesereplikat für Ihre Einzelserverinstanz, und löschen Sie es dann. Dieser Vorgang legt den Parameter log_bin auf EIN fest, und Sie können dann einen Importvorgang auslösen, um zu flexiblem Server zu migrieren.

  • Wenn für Ihre Single Server-Instanz Advanced Threat Protection aktiviert ist, müssen Sie Advanced Threat Protection für die migrierte flexible Serverinstanz nach der Migration aktivieren, indem Sie die folgenden Schritte [hier] (/azure/mysql/flexible-server/advanced-threat-protection-setting?view=azure-cli-latest) ausführen.

  • Wenn Ihre Single Server-Instanz über die Engine-Version v8.0 verfügt, sollten Sie die folgenden Maßnahmen ergreifen, um zu vermeiden, dass es aufgrund der geringfügigen Versionsunterschiede zwischen der Single Server- und der Flexible Server-Instanz zu Änderungen kommt:

    • Führen Sie die folgende Anweisung aus, um zu überprüfen, ob Ihre Instanz durch fehlerhafte Histogramminformationen beeinträchtigt werden könnte. Wenn die entsprechenden Tabellen ausgegeben werden, empfehlen wir, dass Sie auf https://dev.mysql.com/blog-archive/histogram-statistics-in-mysql/ verweisen, um die Histogramminformationen zu löschen, und erstellen Sie sie dann auf dem flexiblen Server neu. Es ist erwähnenswert, dass es sich bei der Histogramminformation nur um statistische Informationen über die Spalten handelt und diese Informationen nur in Systemtabellen vorhanden sind, so dass das Löschen der Histogramm-Information keine Auswirkungen auf die Tabellendaten hat.

          SELECT DISTINCT SCHEMA_NAME, TABLE_NAME FROM `information_schema`.`column_statistics`;
      
    • Führen Sie den folgenden Befehl aus, um nach Tabellen zu suchen, deren Tabellenspaltenreihenfolge durcheinander geraten sein könnte. Wenn diese Überprüfung betroffene Tabellen identifiziert, müssen Sie alle Daten aus diesen Tabellen abbilden und dann wieder importieren. Dies kann dazu führen, dass die Reihenfolge der Spalten im Binlog nicht der Reihenfolge der Spalten in den Benutzertabellen entspricht. Diese Diskrepanz kann verhindern, dass Benutzer Replikation einrichten, Daten wiederherstellen, hohe Verfügbarkeit (High Availability, HA) und andere Vorgänge aktivieren.

          SELECT table_schema, table_name, COUNT(*) AS column_count, MAX(ORDINAL_POSITION) AS max_ordinal_position
          FROM information_schema.columns
          GROUP BY table_schema, table_name
          HAVING column_count != max_ordinal_position;
      
  • Nur der Import auf Instanzebene wird unterstützt. Es ist keine Option zum Importieren ausgewählter Datenbanken innerhalb einer Instanz verfügbar.

  • Die folgenden Elemente sollten von Benutzer*innnen nach dem Importvorgang von der Quelle in das Ziel kopiert werden:

    • Lesereplikate
    • Einstellungen der Überwachungsseite (Warnungen, Metriken und Diagnoseeinstellungen)
    • Alle von Ihnen gehosteten Terraform-/CLI-Skripts zum Verwalten Ihrer Single Server-Instanz sollten mit Flexible Server-Verweisen aktualisiert werden.

Auslösen eines Azure Database for MySQL-Importvorgangs zum Migrieren von „Azure Database for MySQL – Einzelserver“ zu „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 eine Flexible Server-Zielinstanz und führt den Import auf Instanzebene von der Quelle zum Ziel mithilfe von Dienststandards und Werten aus dem lokalen Kontext Ihrer Azure CLI aus:

az mysql flexible-server import create --data-source-type
                                --data-source
                                --resource-group
                                --name
                                [--sku-name]
                                [--tier]
                                [--version]
                                [--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]
                                [--location]
                                [--private-dns-zone]
                                [--public-access]
                                [--resource-group]
                                [--standby-zone]
                                [--storage-auto-grow {Disabled, Enabled}]
                                [--subnet]
                                [--subnet-prefixes]
                                [--tags]
                                [--vnet]
                                [--zone]

Im folgenden Beispiel werden die Datenquelleninformationen für Single Server mit dem Namen „test-single-server“ und Flexible Server-Zielinformationen verwendet, eine Flexible Server-Instanz mit dem Namen test-flexible-server am westus-Speicherort (gleicher Speicherort wie der der Single Server-Quellinstanz) erstellt und ein Import von der Quelle zum Ziel ausgeführt. Der Azure Database for MySQL-Importbefehl ordnet die entsprechenden Eigenschaften (tier, version, sku-name, storage-size, location, geo-redundant-backup, public-access, tags, auto grow, backup-retention-days, admin-user, admin-password) vom Einzelserver dem flexiblen Server als intelligente Standardwerte zu, wenn keine Eingaben für den CLI-Befehl bereitgestellt werden. Sie können die intelligenten Standardwerte überschreiben, indem Sie Eingaben für diese optionalen Parameter bereitstellen.

az mysql flexible-server import create --data-source-type "mysql_single" --data-source "test-single-server" --resource-group "test-rg"  --name "test-flexible-server"

Im folgenden Beispiel werden die Datenquelleninformationen für den Einzelserver mit dem Namen „test-single-server“ und die Informationen für den flexiblen Zielserver verwendet, eine Zielinstanz für den flexiblen Server mit dem Namen test-flexible-server am Standort westus (gleicher Standort wie der der Single Server-Quellinstanz) mit aktivierter Zonenredundanz und Integration des virtuellen Netzwerks erstellt und ein Import von der Quelle zum Ziel ausgeführt. Weitere Informationen zur Konfiguration virtueller Netzwerke finden Sie hier.

# create vnet
az network vnet create --resource-group testGroup --name myVnet --location testLocation --address-prefixes 172.0.0.0/16

# create subnet
az network vnet subnet create --resource-group testGroup --vnet-name myVnet --address-prefixes 172.0.0.0/24 --name mySubnet

# create private dns zone
az network private-dns zone create -g testGroup -n myserver.private.contoso.com

# trigger mysql import
az mysql flexible-server import create --data-source-type "mysql_single" --data-source "test-single-server" --resource-group "test-rg"  --name "test-flexible-server" --high-availability ZoneRedundant --zone 1 --standby-zone 3  --vnet "myVnet" --subnet "mySubnet" --private-dns-zone "myserver.private.contoso.com"

Im folgenden Beispiel werden die Datenquelleninformationen für die Single Server-Instanz mit dem Namen „test-single-server“ und aktiviertem kundenseitig verwaltetem Schlüssel (CMK) sowie Flexible Server-Zielinformationen verwendet, eine Flexible Server-Instanz namens „test-flexible-server“ erstellt und ein Import von der Quelle zum Ziel ausgeführt. Für Einzelserverinstanzen mit aktiviertem CMK erfordert der Befehl für den Azure Database for MySQL-Import, dass Sie obligatorische Eingabeparameter zum Aktivieren von CMK bereitstellen: --keyIdentifierOfTestKey --identity testIdentity.

# create keyvault
az keyvault create -g testGroup -n testVault --location testLocation \
  --enable-purge-protection true

# create key in keyvault and save its key identifier
keyIdentifier=$(az keyvault key create --name testKey -p software \
  --vault-name testVault --query key.kid -o tsv)

# create identity and save its principalId
identityPrincipalId=$(az identity create -g testGroup --name testIdentity \
  --location testLocation --query principalId -o tsv)

# add testIdentity as an access policy with key permissions 'Wrap Key', 'Unwrap Key', 'Get' and 'List' inside testVault
az keyvault set-policy -g testGroup -n testVault --object-id $identityPrincipalId \
  --key-permissions wrapKey unwrapKey get list

# trigger azure database for mysql import for CMK enabled single server
az mysql flexible-server import create --data-source-type "mysql_single" --data-source "test-single-server" --resource-group "test-rg"  --name "test-flexible-server" --key $keyIdentifier --identity testIdentity

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

Einstellung Beispielwert Beschreibung
data-source-type mysql_single Der Typ der Datenquelle, die als Quellziel zum Auslösen des Azure Database for MySQL-Imports dient. Akzeptierte Werte: [mysql_single]. Beschreibung der akzeptierten Werte: mysql_single: Azure Database for MySQL Single Server.
data-source test-single-server Der Name oder die Ressourcen-ID der Azure Database for MySQL Single Server-Quelle.
resource-group test-rg Der Name der Azure-Ressourcengruppe der Azure Database for MySQL Single Server-Quelle.
Modus Offline Der Modus des Azure Database for MySQL-Imports. Akzeptierte Werte: [Offline]; Standardwert: Offline.
location westus Der Azure-Speicherort für die Azure Database for MySQL Single Server-Quelle.
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. Das Subnetz wird an flexibleServers delegiert. 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“.

Schritte für die Onlinemigration

Nach Abschluss des oben erläuterten Azure Database for MySQL-Importvorgangs:

  • Melden Sie sich bei der Zielinstanz von „Azure Database for MySQL – Flexibler Server“ an, und führen Sie den folgenden Befehl aus, um den Dateinamen und die Position des Binärprotokolls entsprechend der Sicherungsmomentaufnahme abzurufen, die von der Azure Database for MySQL-Import-CLI zum Wiederherstellen auf dem Zielserver verwendet wird.
CALL mysql.az_show_binlog_file_and_pos_for_mysql_import();
  • Richten Sie die Datenreplikation zwischen den Quell- und Zielserverinstanzen mithilfe der Binärprotokollposition ein, indem Sie die hier aufgeführten Schritte ausführen. Wenn der Replikationsstatus angibt, dass der Zielserver auf dem gleichen Stand wie die Quelle ist, beenden Sie die Replikation, und führen Sie den Cutover aus.

Bewährte Methoden zum Konfigurieren von Befehlsparametern für die Azure Database for MySQL-Import-CLI

Bevor Sie den Befehl der Azure Database for MySQL-Import-CLI auslösen, sollten Sie die folgenden Parameterkonfigurationsanleitungen berücksichtigen, um mithilfe der Azure Database for MySQL-Import-CLI schnellere Datenladevorgänge zu gewährleisten.

  • Wenn Sie die intelligenten Standardwerte überschreiben möchten, wählen Sie die Computeebene und den SKU-Namen für die Zielinstanz des flexiblen Servers auf der Grundlage des Tarifs und der virtuellen Kerne der Einzelserverquellinstanz anhand der Details in der folgenden Tabelle aus.

    Single Server: Tarif Single Server: Virtuelle Kerne Flexibler Server – Ebene Flexibler Server – SKU-Name
    Basic 1 Burstfähig Standard_B2ms
    Basic 2 Burstfähig Standard_B2ms
    Universell 4 Universell Standard_D4ds_v4
    Universell 8 Universell Standard_D8ds_v4
    Universell 16 Universell Standard_D16ds_v4
    Universell 32 Universell Standard_D32ds_v4
    Universell 64 Universell Standard_D64ds_v4
    Arbeitsspeicheroptimiert 4 Arbeitsspeicheroptimiert Standard_E4ds_v4
    Arbeitsspeicheroptimiert 8 Arbeitsspeicheroptimiert Standard_E8ds_v4
    Arbeitsspeicheroptimiert 16 Arbeitsspeicheroptimiert Standard_E16ds_v4
    Arbeitsspeicheroptimiert 32 Arbeitsspeicheroptimiert Standard_E32ds_v4
  • MySQL-Version, Region, Abonnement und Ressource für die Flexible Server-Zielinstanz müssen größer oder gleich denen der Single Server-Quellinstanz sein.

  • Die Speichergröße für die Flexible Server-Zielinstanz sollte mindestens der auf der Single Server-Quellinstanz entsprechen.

  • Wenn in der Single Server-Instanz „Infrastructure Double Encryption“ aktiviert ist, wird empfohlen, kundenseitig verwaltete Schlüssel (CMK) in der Flexible Server-Zielinstanz zu aktivieren, um ähnliche Funktionen zu unterstützen. Sie können mit Eingabeparametern der Azure Database for MySQL-Import-CLI oder auch nach der Migration CMK auf dem Zielserver aktivieren.

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

Nachfolgend finden Sie die referenzierte Leistung basierend auf der Speichergröße für die universelle V2-Speicherarchitektur. (Die Migration von Servern mit universellem V1-Speicher dauert länger, da auch ein Upgrade der Speicherarchitektur erforderlich ist)

Single Server-Speichergröße 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.

Aus der obigen Tabelle ist ersichtlich, dass mit zunehmender Speichergröße auch der Zeitaufwand für das Kopieren von Daten fast in einem linearen Verhältnis wächst. 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.

Im Folgenden finden Sie die Benchmarkleistung basierend auf einer unterschiedlichen Anzahl von Tabellen für eine Speichergröße von 10 GiB.

Anzahl von Tabellen in der Single Server-Instanz Importdauer
100 4 Min. 24 Sek.
200 4 Min. 40 Sek.
800 4 Min. 52 Sek.
14\.400 17 Min. 41 Sek.
28.800 19 Min. 18 Sek.
38.400 22 Min. 50 Sek.

Wenn die Anzahl der Dateien zunimmt, kann jede Datei/Tabelle in der Datenbank sehr klein werden. Dies führt zu einer konstanten Datenmenge, die übertragen wird. Aber es treten häufiger dateibezogene Vorgänge auf, die die Leistung des Azure Database for MySQL-Imports beeinträchtigen können.

Schritte nach dem Import

  • Kopieren Sie die folgenden Eigenschaften aus der Einzelserverquellinstanz in die Zielinstanz des flexiblen Servers, nachdem der Azure Database for MySQL-Importvorgang erfolgreich abgeschlossen wurde:
    • Lesereplikate
    • Serverparameterwert für event_scheduler
    • Einstellungen der Überwachungsseite (Warnungen, Metriken und Diagnoseeinstellungen)
    • Alle Terraform-/CLI-Skripts, die Sie zum Verwalten Ihrer Single Server-Instanz hosten, sollten mit Flexible Server-Verweisen aktualisiert werden.

Nächster Schritt