Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Datamigrering är avgörande för att flytta MySQL-databaser från lokala miljöer till Azure Database for MySQL. Den här artikeln fokuserar på att använda MySQL Workbench, ett kraftfullt verktyg som förenklar migreringen. Genom att använda MySQL Workbench kan du effektivt överföra dina data samtidigt som du minimerar stilleståndstiden och säkerställer dataintegriteten. Den här guiden vägleder dig genom den stegvisa processen för att konfigurera och köra en datamigrering med MySQL Workbench, med bästa praxis och potentiella fallgropar att undvika. Oavsett om du är en erfaren databasadministratör eller nybörjare på databasmigreringar innehåller den här artikeln de insikter och tekniker som behövs för att uppnå en sömlös och lyckad migrering till Azure.
Förutsättningar
Migrera MySQL lokalt till Azure Database for MySQL: Data Migration
Ställ in
Följ alla steg i installationsguiden för att skapa en miljö som stöder följande steg.
Konfigurera serverparametrar (källa)
Beroende på vilken typ av migrering du har valt (offline jämfört med online) vill du utvärdera om du ska ändra serverparametrarna för att stödja en snabb utgående data. Om du gör online kanske det inte är nödvändigt att göra något med serverparametrar eftersom det är troligt att du utför en binlog
replikering och har datasynkronisering på egen hand. Men om du utför en offlinemigrering kan du när du stoppar programtrafiken växla serverparametrarna från att stödja arbetsbelastningen till att stödja exporten.
Konfigurera serverparametrar (mål)
Granska serverparametrarna innan du börjar importera till Azure Database for MySQL. Serverparametrar kan hämtas och ställas in med hjälp av Azure Portal eller genom att anropa Cmdletarna Azure PowerShell for MySQL för att göra ändringarna.
Kör följande PowerShell-skript för att hämta alla parametrar:
\[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
Om du vill göra samma sak med mysql-verktyget laddar du ned CA-rotcertifieringen till c:\temp (gör den här katalogen).
Kommentar
Certifikatet kan komma att ändras. Referens Konfigurera SSL-anslutning i ditt program för säker anslutning till Azure Database for MySQL för den senaste certifikatinformationen.
Kör följande i en kommandotolk och se till att uppdatera token:
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
I den nya filen "settings_azure.txt" kan du se standardparametrarna för Azure Database for MySQL-servern som visas i bilagan.
För att stödja migreringen anger du mySQL-målinstansparametrarna så att det går snabbare att komma in. Följande serverparametrar bör anges innan datamigreringen startas:
max\_allowed\_packet
– ange parametern till1073741824
(dvs. 1 GB) eller den största storleken på en rad i databasen för att förhindra spillproblem på grund av långa rader. Överväg att justera den här parametern om det finns stora BLOB-rader som behöver hämtas (eller läsas).innodb\_buffer\_pool\_size
– Skala upp servern till 32 VCore Minnesoptimerad SKU från prisnivån i portalen under migreringen för att öka innodb_buffer_pool_size. Innodb_buffer_pool_size kan bara ökas genom att skala upp beräkning för Azure Database for MySQL-servern. Referensserverparametrar i Azure Database for MySQL för det högsta värdet för nivån. Det maximala värdet i ett system med minnesoptimerad 32 virtuella kärnor är132070244352
.innodb\_io\_capacity
&innodb\_io\_capacity\_max
– Ändra parametern till9000
för att förbättra I/O-användningen för att optimera migreringshastigheten.max\_connections
– Om du använder ett verktyg som genererar flera trådar för att öka dataflödet ökar du anslutningarna för att stödja verktyget. Standardvärdet är151
, max är5000
.Kommentar
Var försiktig när du utför skalning. Vissa åtgärder kan inte ångras, till exempel lagringsskalning.
De här inställningarna kan uppdateras med hjälp av Azure PowerShell-cmdletarna nedan:
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
Data
Verktygsval
Med databasobjekten och användarna från källsystemet migrerade kan migreringen börja. Databaser som körs på MySQL version 8.0 kan inte använda Azure DMS för att migrera arbetsbelastningen. I stället bör migreringsanvändare använda MySQL Workbench.
Manuella import- och exportsteg
Öppna MySQL Workbench och anslut som den lokala databasens rotanvändare.
Under **Hantering**väljer du **Dataexport**. Välj reg_app schema.
I Objekt som ska exporteras väljer du Dumpa lagrade procedurer och funktioner, Dumphändelser och dumputlösare.
Under Exportalternativ väljer du Exportera till fristående fil.
Markera också kryssrutan Inkludera skapa schema . Se bilden nedan för att se rätt mysqldump-konfiguration.
Testa
Om något av de här alternativen verkar vara otillgängligt hindras de troligen av fönstret Utdata. Ändra redigerarlayouten.
Testa
Välj fliken Exportera förlopp .
Välj Starta export. Observera att MySQL Workbench anropar
mysqldump
verktyget.Öppna det nyligen skapade exportskriptet.
Hitta några
DEFINER
instruktioner och ändra till en giltig användare eller ta bort dem helt.
Kommentar
Detta kan göras genom att skicka --skip-definer
i kommandot mysqldump. Det här är inte ett alternativ i MySQL Workbench. Därför måste raderna tas bort manuellt i exportkommandona. Även om vi pekar ut fyra objekt att ta bort här kan det finnas andra objekt som kan misslyckas när du migrerar från en MySQL-version till en annan (till exempel nya reserverade ord).
Hitta
SET GLOBAL
instruktioner och ändra till en giltig användare eller ta bort dem helt.Se till att
sql\_mode
inte är inställt påNO\_AUTO\_CREATE\_USER
.hello\_world
Ta bort funktionen.I MySQL Workbench skapar du en ny anslutning till Azure Database for MySQL.
Som Värdnamn anger du den fullständiga server-DNS:en (t.ex.
servername.mysql.database.azure.com
).Ange användarnamnet (till ex:
sqlroot@servername
).Välj fliken SSL .
För SSL CA-filen bläddrar du till BaltimoreCyberTrustRoot.crt.cer nyckelfilen.
Välj Testa anslutning och se till att anslutningen har slutförts.
Välj OK.
Dialogrutan MySQL-anslutning visas.
Välj Filöppna SQL-skript>.
Bläddra till dumpfilen och välj Öppna.
Välj Kör.
Uppdatera program för att stödja SSL
Växla till Java Server-API:et i Visual Studio Code.
Öppna filen launch.json .
Uppdatera DB_CONNECTION_URL för att
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.
notera de ytterligare SSL-parametrarna.Uppdatera DB_USER_NAME till conferenceuser@servername.
Starta felsökningskonfigurationen och se till att programmet fungerar lokalt med den nya databasen.
Återställ serverparametrar
Följande parametrar kan ändras på Azure Database for MySQL-målinstansen. Dessa parametrar kan ställas in via Azure Portal eller med hjälp av Azure PowerShell för MySQL-cmdletar.
$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
Ändra anslutningssträng för Java-API:et
- Använd följande kommandon för att ändra anslutningssträng för App Service Java API
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}
Kommentar
Kom ihåg att du kan använda portalen för att ange anslutningssträng.
- Starta om App Service-API:et
az webapp restart -g $rgName -n $app\_name
Du har slutfört en lokal migrering till Azure Database for MySQL!