Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Datenmigration ist entscheidend beim Verschieben von MySQL-Datenbanken von lokalen Umgebungen in Azure Database for MySQL. Dieser Artikel konzentriert sich auf die Verwendung von MySQL Workbench, einem Tool, das die Migration vereinfacht. Mit My SQL Workbench können Sie Ihre Daten effizient übertragen, die Downtime minimieren und die Datenintegrität sicherstellen. Diese Anleitung führt Sie Schritt für Schritt durch den Prozess der Einrichtung und Durchführung einer Datenmigration mit MySQL Workbench und geht dabei auf bewährte Verfahren und potenzielle Fallstricke ein, die es zu vermeiden gilt. Unabhängig davon, ob Sie über Erfahrung als Datenbankadministrator verfügen oder sich zum ersten Mal mit Datenbankmigrationen befassen, bietet dieser Artikel die erforderlichen Einblicke und Techniken, um eine nahtlose und erfolgreiche Migration zu Azure zu gewährleisten.
Voraussetzungen
Migrieren lokaler MySQL-Instanzen zu Azure Database for MySQL: Datenmigration
Setup
Führen Sie alle Schritte in der Setupanleitung aus, um eine Umgebung zu erstellen, die die folgenden Schritte unterstützt.
Konfigurieren Sie die Serverparameter (Quelle)
Abhängig vom ausgewählten Migrationstyp (offline oder online) möchten Sie feststellen, ob Sie die Serverparameter ändern müssen, um eine schnelle ausgehende Übertragung der Daten zu unterstützen. Bei einer Onlinemigration ist es u. U. nicht erforderlich, Serverparameter zu ändern, da Sie wahrscheinlich eine binlog-Replikation durchführen, bei der die Daten automatisch synchronisiert werden. Wenn Sie jedoch eine Offlinemigration durchführen, können Sie die Serverparameter von der Workloadunterstützung auf die Exportunterstützung umstellen, nachdem der Anwendungsdatenverkehr beendet wurde.
Konfigurieren Sie die Serverparameter (Ziel)
Überprüfen Sie die Serverparameter, bevor Sie den Importvorgang in Azure Database for MySQL starten. Serverparameter können im Azure-Portal oder durch Aufrufen der Azure PowerShell für MySQL-Cmdlets zum Durchführen der Änderungen abgerufen und festgelegt werden.
Führen Sie das folgende PowerShell-Skript aus, um alle Parameter abzurufen:
\[Net.ServicePointManager\]::SecurityProtocol = \[Net.SecurityProtocolType\]::Tls
12
Install-Module -Name Az.MySql
Connect-AzAccount
$rgName = "{RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Get-AzMySqlConfiguration -ResourceGroupName $rgName -ServerName $serverName
Falls Sie das mysql-Tool verwenden möchten, laden Sie das Stammzertifikat für die Zertifizierungsstelle in „c:\temp“ herunter. (Das Verzeichnis muss erstellt werden.)
Hinweis
Das Zertifikat kann sich ändern. Informationen zum aktuellen Zertifikat finden Sie unter Konfigurieren von SSL-Verbindungen in der Anwendung für eine sichere Verbindung mit Azure Database for MySQL.
Führen Sie folgenden Befehl an einer Eingabeaufforderung aus, und vergewissern Sie sich, dass die Token aktualisiert wurden:
mysql --host {servername}.mysql.database.azure.com --database mysql --user
{u sername}@{servername} -p --ssl-ca=c:\\temp\\BaltimoreCyberTrustRoot.crt.cer
-A -e "SHOW GLOBAL VARIABLES;" \> c:\\temp\\settings\_azure.txt
Die neue Datei „settings_azure.txt“ enthält die Standardserverparameter für Azure Database for MySQL Server (siehe Anhang).
Um die Migration zu unterstützen, legen Sie die MySQL-Zielinstanzparameter so fest, dass eine schnellere eingehende Übertragung ermöglich ist. Vor dem Starten der Datenmigration sollten die folgenden Serverparameter festgelegt werden:
max\_allowed\_packet: Legen Sie den Parameter auf1073741824(d. h. 1 GB) oder die größte Größe einer Zeile in der Datenbank fest, um Überlaufprobleme aufgrund langer Zeilen zu vermeiden. Passen Sie diesen Parameter ggf. an, wenn große BLOB-Zeilen abgerufen (oder gelesen) werden müssen.innodb\_buffer\_pool\_size: Skalieren Sie den Server im Portal auf der Tarifseite während der Migration auf die arbeitsspeicheroptimierte SKU mit 32 virtuellen Kernen hoch, um „innodb_buffer_pool_size“ zu erhöhen. Die innodb_buffer_pool_size kann nur durch Hochskalieren von Computeressourcen für Azure Database for MySQL-Server erhöht werden. Informationen zum maximalen Wert für den Tarif finden Sie unter Serverparameter in Azure Database for MySQL. Der maximale Wert in einem arbeitsspeicheroptimiertem System mit 32 virtuellen Kernen ist132070244352.innodb\_io\_capacity&innodb\_io\_capacity\_max: Ändern Sie den Parameter in9000, um die E/A-Nutzung zu verbessern und die Migrationsgeschwindigkeit zu optimieren.max\_connections: Wenn Sie ein Tool verwenden, das mehrere Threads generiert, um den Durchsatz zu erhöhen, erhöhen Sie die Anzahl von Verbindungen, um das Tool zu unterstützen. Der Standardwert ist151, der maximale Wert ist5000.Hinweis
Führen Sie die Skalierung mit Bedacht durch. Einige Vorgänge können nicht rückgängig gemacht werden, z. B. die Speicherskalierung.
Diese Einstellungen können den folgenden Azure PowerShell-Cmdlets aktualisiert werden:
Install-Module -Name Az.MySql
$rgName = " {RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Select-AzSubscription -Subscription "{SUBSCRIPTION\_ID}"
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 1073741824
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName
$rgna me -ServerName $serverName -Value 9000
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 9000
\#required if You've functions
Update-AzMySqlConfiguration -Name log\_bin\_trust\_function\_creators
-ResourceGr oupName $rgname -ServerName $serverName -Value ON
Daten
Toolauswahl
Nachdem die Datenbankobjekte und Benutzer aus dem Quellsystem migriert wurden, kann die Migration beginnen. Datenbanken, die unter MySQL Version 8.0 ausgeführt werden, können Azure DMS nicht zum Migrieren der Workload verwenden. Stattdessen sollten Migrationsbenutzer MySQL Workbench verwenden.
Manuelle Import- und Exportschritte
Öffnen Sie MySQL Workbench, und stellen Sie eine Verbindung als Stammbenutzer der lokalen Datenbank her.
Wählen Sie unter **Verwaltung** die Option **Datenexport** aus. Wählen Sie das Schema reg_app aus.
Wählen Sie unter Zu exportierende Objekte die Optionen Gespeicherte Prozeduren und Funktionen sichern, Ereignisse sichern und Trigger sichern aus.
Wählen Sie unter Exportoptionen die Option In eigenständige Datei exportieren aus.
Aktivieren Sie außerdem das Kontrollkästchen Erstellungsschema einschließen. Die folgende Abbildung zeigt die korrekte mysqldump-Konfiguration:
Test
Wenn eine dieser Optionen nicht verfügbar ist, werden sie wahrscheinlich vom Ausgabebereich verdeckt. Ändern Sie einfach das Editorlayout.
Test
Wählen Sie die Registerkarte Exportfortschritt aus.
Wählen Sie Export starten aus. Daraufhin werden von MySQL Workbench Aufrufe an das Tool
mysqldumpübermittelt.Öffnen Sie das neu erstellte Exportskript.
Ändern Sie alle Anweisungen vom Typ
DEFINERentweder in einen gültigen Benutzer, oder entfernen Sie sie vollständig.
Hinweis
Dies kann erreicht werden, indem --skip-definer im mysqldump-Befehl übergeben wird. Dies ist keine Option in der MySQL Workbench. Daher müssen die Zeilen in den Exportbefehlen manuell entfernt werden. Wir weisen hier zwar auf vier Elemente hin, die entfernt werden müssen. Es kann aber auch andere Elemente geben, die bei der Migration von einer MySQL-Version zu einer anderen Fehler verursachen können (z. B. neue reservierte Wörter).
Ändern Sie Anweisungen vom Typ
SET GLOBALentweder in einen gültigen Benutzer, oder entfernen Sie sie vollständig.Achten Sie darauf, dass
sql\_modenicht aufNO\_AUTO\_CREATE\_USERfestgelegt ist.Entfernen Sie die Funktion
hello\_world.Erstellen Sie in MySQL Workbench eine neue Verbindung mit Azure Database for MySQL.
Geben Sie als Hostnamen den vollständigen Server-DNS ein (z. B.
servername.mysql.database.azure.com).Geben Sie den Benutzernamen ein (z. B.
sqlroot@servername).Wählen Sie die Registerkarte SSL aus.
Navigieren Sie für die SSL-Zertifizierungsstellendatei zur Schlüsseldatei BaltimoreCyberTrustRoot.crt.cer.
Wählen Sie Verbindung testen aus, und vergewissern Sie sich, dass die Verbindung erfolgreich hergestellt wird.
Wählen Sie OK aus.
Das Dialogfeld „MySQL-Verbindung“ wird angezeigt.
Wählen Sie Datei > SQL-Skript öffnen aus.
Navigieren Sie zur Sicherungsdatei, und wählen Sie Öffnen aus.
Wählen Sie Execute(Ausführen).
Aktualisieren von Anwendungen zur Unterstützung von SSL
Wechseln Sie in Visual Studio Code zur Java Server-API.
Öffnen Sie die Datei launch.json.
Aktualisieren Sie DB_CONNECTION_URL auf
jdbc:mysql://serverDNSname:3306/reg\_app?useUnicode=true\&useJDBCCompliantT imezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC\&verifySe rverCertificate=true\&useSSL=true\&requireSSL=true\&noAccessToProcedureBodie s=true.Beachten Sie die zusätzlichen SSL-Parameter.Aktualisieren Sie DB_USER_NAME auf conferenceuser@servername.
Starten Sie die Debugkonfiguration, und vergewissern Sie sich, dass die Anwendung lokal mit der neuen Datenbank funktioniert.
Ändern von Serverparametern
Die folgenden Parameter können in der Azure Database for MySQL Zielinstanz geändert werden. Diese Parameter können über das Azure-Portal oder mithilfe der Azure PowerShell für MySQL-Cmdlets festgelegt werden.
$rgName = "YourRGName";
$serverName = "servername";
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 536870912
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName $rgna
me -ServerName $serverName -Value 200
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 2000
Ändern der Verbindungszeichenfolge für die Java-API
- Verwenden Sie die folgenden Befehle, um die Verbindungszeichenfolge für die App Service Java-API zu ändern.
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}
Hinweis
Denken Sie daran, dass Sie die Verbindungszeichenfolge über das Portal festlegen können.
- Starten Sie die App Service-API neu.
az webapp restart -g $rgName -n $app\_name
Sie haben erfolgreich eine Migration einer lokalen Instanz zu Azure Database for MySQL durchgeführt.