MySQL on-premises migreren naar Azure Database for MySQL: Gegevensmigratie met MySQL Workbench
VAN TOEPASSING OP: Azure Database for MySQL - Enkele server Azure Database for MySQL - Flexibele server
Vereisten
Instellingen
Volg alle stappen in de installatiehandleiding om een omgeving te maken ter ondersteuning van de volgende stappen.
Serverparameters configureren (bron)
Afhankelijk van het type migratie dat u hebt gekozen (offline versus online), wilt u evalueren of u de serverparameters wilt wijzigen om een snel uitgaand verkeer van de gegevens te ondersteunen. Als u online werkt, is het mogelijk niet nodig om iets te doen met serverparameters, omdat u waarschijnlijk een binlog
replicatie uitvoert en de gegevens alleen synchroniseert. Als u echter een offlinemigratie uitvoert, kunt u, zodra u het toepassingsverkeer stopt, de serverparameters overschakelen van de ondersteuning van de workload naar het ondersteunen van de export.
Serverparameters configureren (doel)
Controleer de serverparameters voordat u het importproces start in Azure Database for MySQL. Serverparameters kunnen worden opgehaald en ingesteld met behulp van Azure Portal of door de Azure PowerShell for MySQL-cmdlets aan te roepen om de wijzigingen aan te brengen.
Voer het volgende PowerShell-script uit om alle parameters op te halen:
\[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
Als u hetzelfde wilt doen met het hulpprogramma mysql, downloadt u de CA-basiscertificering naar c:\temp (maak deze map).
Notitie
Het certificaat kan worden gewijzigd. Naslaginformatie SSL-connectiviteit configureren in uw toepassing om veilig verbinding te maken met Azure Database for MySQL voor de meest recente certificaatgegevens.
Voer het volgende uit in een opdrachtprompt, zorg ervoor dat u de tokens bijwerkt:
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
In het nieuwe bestand 'settings_azure.txt' ziet u de standaardparameters van de Azure Database for MySQL-server, zoals weergegeven in de bijlage.
Als u de migratie wilt ondersteunen, stelt u de parameters van het MySQL-doelexemplaren in om een sneller inkomend verkeer mogelijk te maken. De volgende serverparameters moeten worden ingesteld voordat u de gegevensmigratie start:
max\_allowed\_packet
– stel de parameter in op1073741824
(dat wil gezegd 1 GB) of de grootste grootte van een rij in de database om een overloopprobleem te voorkomen vanwege lange rijen. U kunt deze parameter aanpassen als er grote BLOB-rijen zijn die moeten worden opgehaald (of moeten worden gelezen).innodb\_buffer\_pool\_size
– Schaal de server omhoog naar 32 vCore geoptimaliseerde SKU's vanuit de prijscategorie van de portal tijdens de migratie om de innodb_buffer_pool_size te verhogen. Innodb_buffer_pool_size kan alleen worden verhoogd door rekenkracht voor Azure Database for MySQL-server omhoog te schalen. Referentieserverparameters in Azure Database for MySQL voor de maximale waarde voor de laag. De maximale waarde in een door geheugen geoptimaliseerd 32 vCore-systeem is132070244352
.innodb\_io\_capacity
&innodb\_io\_capacity\_max
- Wijzig de parameter om het I/O-gebruik te9000
verbeteren om de migratiesnelheid te optimaliseren.max\_connections
- Als u een hulpprogramma gebruikt waarmee meerdere threads worden gegenereerd om de doorvoer te verhogen, verhoogt u de verbindingen om dat hulpprogramma te ondersteunen. De standaardwaarde is151
, max is5000
.Notitie
Let op bij het uitvoeren van schalen. Sommige bewerkingen kunnen niet ongedaan worden gemaakt, zoals het schalen van opslag.
Deze instellingen kunnen worden bijgewerkt met behulp van de Onderstaande Azure PowerShell-cmdlets:
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
Gegevens
Keuze van hulpprogramma
Wanneer de databaseobjecten en gebruikers van het bronsysteem zijn gemigreerd, kan de migratie beginnen. Databases die worden uitgevoerd op MySQL versie 8.0, kunnen Azure DMS niet gebruiken om de workload te migreren. In plaats daarvan moeten migratiegebruikers MySQL Workbench gebruiken.
Handmatige stappen voor importeren en exporteren
Open MySQL Workbench en maak verbinding als de hoofdgebruiker van de lokale database.
Selecteer **Gegevensexport** onder **Beheer**. Selecteer het reg_app schema.
Selecteer in Objecten die u wilt exporteren, opgeslagen procedures en functies dumpen, dump-gebeurtenissen en dumptriggers.
Selecteer onder Exportopties de optie Exporteren naar zelfstandig bestand.
Schakel ook het selectievakje Schema opnemen in. Raadpleeg de onderstaande afbeelding om de juiste mysqldump-configuratie te bekijken.
Testen
Als een van deze opties niet beschikbaar is, worden deze waarschijnlijk geblokkeerd door het deelvenster Uitvoer. U hoeft alleen de indeling van de editor te wijzigen.
Testen
Selecteer het tabblad Voortgang exporteren.
Selecteer Exporteren starten. U ziet dat MySQL Workbench het hulpprogramma aanroept
mysqldump
.Open het zojuist gemaakte exportscript.
Zoek instructies
DEFINER
en wijzig deze in een geldige gebruiker of verwijder ze volledig.
Notitie
U kunt dit doen door de --skip-definer
opdracht mysqldump door te geven. Dit is geen optie in MySQL Workbench; Daarom moeten de regels handmatig worden verwijderd in de exportopdrachten. Hoewel we hier vier items aanwijzen die moeten worden verwijderd, kunnen er andere items zijn die kunnen mislukken bij het migreren van de ene MySQL-versie naar een andere (zoals nieuwe gereserveerde woorden).
Zoek
SET GLOBAL
instructies en wijzig deze in een geldige gebruiker of verwijder ze volledig.Zorg ervoor dat
sql\_mode
deze niet is ingesteld opNO\_AUTO\_CREATE\_USER
.Verwijder de
hello\_world
functie.Maak in MySQL Workbench een nieuwe verbinding met Azure Database for MySQL.
Voer voor Hostnaam de volledige DNS van de server in (bijvoorbeeld:
servername.mysql.database.azure.com
).Voer de gebruikersnaam in (bijvoorbeeld:
sqlroot@servername
).Selecteer het SSL-tabblad.
Blader voor het SSL CA-bestand naar het BaltimoreCyberTrustRoot.crt.cer-sleutelbestand .
Selecteer Verbinding testen en controleer of de verbinding is voltooid.
Selecteer OK.
Het dialoogvenster MySQL-verbinding wordt weergegeven.
Selecteer Bestand openen SQL-script>.
Blader naar het dumpbestand en selecteer Openen.
Selecteer Uitvoeren.
Toepassingen bijwerken ter ondersteuning van SSL
Schakel over naar de Java Server-API in Visual Studio Code.
Open het bestand launch.json .
Werk de DB_CONNECTION_URL bij om de aanvullende SSL-parameters te
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.
noteren.Werk DB_USER_NAME bij naar conferenceuser@servername.
Start de foutopsporingsconfiguratie en zorg ervoor dat de toepassing lokaal werkt met de nieuwe database.
Serverparameters herstellen
De volgende parameters kunnen worden gewijzigd in het Azure Database for MySQL-doelexemplaren. Deze parameters kunnen worden ingesteld via Azure Portal of met behulp van de Azure PowerShell voor MySQL-cmdlets.
$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
Verbindingsreeks wijzigen voor de Java-API
- Gebruik de volgende opdrachten om de verbindingsreeks voor de Java-API van App Service te wijzigen
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}
Notitie
Houd er rekening mee dat u de portal kunt gebruiken om de verbindingsreeks in te stellen.
- De App Service-API opnieuw starten
az webapp restart -g $rgName -n $app\_name
U hebt een on-premises migratie naar Azure Database for MySQL voltooid.