Dela via


Migrera MySQL lokalt till Azure Database for MySQL: Datamigrering med MySQL Workbench

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
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 till 1073741824 (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 är 132070244352.

  • innodb\_io\_capacity & innodb\_io\_capacity\_max – Ändra parametern till 9000 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 är 151, max är 5000.

    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.

    Skärmbild av inkluderingsschemat för att skapa.

      Testa

  • Om något av de här alternativen verkar vara otillgängligt hindras de troligen av fönstret Utdata. Ändra redigerarlayouten.

    Skärmbild av redigeringslayouten.

      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.

      Skärmbild av dialogrutan MySQL-anslutning.

      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!

Gå vidare