Delen via


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

Gegevensmigratie

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
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 op 1073741824 (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 is 132070244352.

  • innodb\_io\_capacity & innodb\_io\_capacity\_max - Wijzig de parameter om het I/O-gebruik te 9000 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 is 151, max is 5000.

    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.

    Schermopname van het opnameschema.

      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.

    Schermopname van de indeling van de editor.

      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 op NO\_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.

      Schermopname van het dialoogvenster MySQL-verbinding.

      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.

Volgende stap