Sdílet prostřednictvím


Migrace místního MySQL do služby Azure Database for MySQL: Migrace dat pomocí aplikace MySQL Workbench

Migrace dat je důležitá pro přesun databází MySQL z místních prostředí do Služby Azure Database for MySQL. Tento článek se zaměřuje na používání aplikace MySQL Workbench, což je výkonný nástroj, který zjednodušuje migraci. Pomocí aplikace MySQL Workbench můžete efektivně přenášet data a zároveň minimalizovat výpadky a zajistit integritu dat. Tato příručka vás provede podrobným procesem nastavení a spuštění migrace dat pomocí aplikace MySQL Workbench, zvýrazněním osvědčených postupů a potenciálních nástrah, kterým se chcete vyhnout. Tento článek obsahuje přehledy a techniky potřebné k dosažení bezproblémové a úspěšné migrace do Azure bez ohledu na to, jestli jste správcem databáze nebo novým správcem databáze.

Požadavky

Migrace místního MySQL do služby Azure Database for MySQL: Migrace dat

Nastavení

Postupujte podle všech kroků v průvodci nastavením a vytvořte prostředí, které bude podporovat následující kroky.

Konfigurace parametrů serveru (zdroj)

V závislosti na typu migrace, kterou jste zvolili (offline nebo online), chcete vyhodnotit, jestli chcete upravit parametry serveru tak, aby podporovaly rychlý výchozí přenos dat. Pokud provádíte online, nemusí být nutné provádět nic s parametry serveru, protože pravděpodobně provádíte binlog replikaci a data se synchronizují samostatně. Pokud ale provádíte offline migraci, můžete po zastavení provozu aplikace přepnout parametry serveru z podpory úlohy na podporu exportu.

Konfigurace parametrů serveru (cíl)

Před zahájením procesu importu do Služby Azure Database for MySQL zkontrolujte parametry serveru. Parametry serveru je možné načíst a nastavit pomocí webu Azure Portal nebo voláním rutin Azure PowerShellu pro MySQL, které provede změny.

Spuštěním následujícího skriptu PowerShellu získejte všechny parametry:

\[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

V novém souboru settings_azure.txt uvidíte výchozí parametry serveru Azure Database for MySQL, jak je znázorněno v dodatku.

Pokud chcete migraci podporovat, nastavte parametry cílové instance MySQL tak, aby umožňovaly rychlejší příchozí přenos dat. Před zahájením migrace dat by se měly nastavit následující parametry serveru:

  • max\_allowed\_packet – nastavte parametr na 1073741824 (tj. 1 GB) nebo největší velikost řádku v databázi, aby se zabránilo jakémukoli problému s přetečením kvůli dlouhým řádkům. Zvažte úpravu tohoto parametru, pokud je potřeba vytáhnout (nebo číst) velké řádky objektů BLOB.

  • innodb\_buffer\_pool\_size – Vertikálně navyšte kapacitu serveru na skladovou položku optimalizovanou pro 32 virtuálních jader z cenové úrovně portálu během migrace, abyste zvýšili innodb_buffer_pool_size. Innodb_buffer_pool_size je možné zvýšit pouze vertikálním navýšením kapacity výpočetních prostředků pro server Azure Database for MySQL. Parametry referenčního serveru ve službě Azure Database for MySQL pro maximální hodnotu pro úroveň Maximální hodnota v systému optimalizováno pro paměť 32 virtuálních jader je 132070244352.

  • innodb\_io\_capacity & innodb\_io\_capacity\_max Změňte parametr tak, aby 9000 se zlepšilo využití vstupně-výstupních operací, aby se optimalizovala rychlost migrace.

  • max\_connections – Pokud používáte nástroj, který generuje více vláken pro zvýšení propustnosti, zvyšte připojení pro podporu daného nástroje. Výchozí hodnota je 151, max je 5000.

    Poznámka:

    Při škálování je třeba dbát na to, aby se provedlo škálování. Některé operace se nedají vrátit zpět, například škálování úložiště.

Tato nastavení je možné aktualizovat pomocí následujících rutin Azure PowerShellu:

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

Volba nástroje

S migrovanými databázovými objekty a uživateli ze zdrojového systému může migrace začít. Databáze spuštěné na MySQL verze 8.0 nemůžou k migraci úlohy použít Azure DMS. Místo toho by uživatelé migrace měli používat MySQL Workbench.

Ruční kroky importu a exportu

  • Otevřete aplikaci MySQL Workbench a připojte se jako uživatel root místní databáze.

  • V části **Správa** vyberte **Export dat**. Vyberte schéma reg_app.

  • V objektech k exportu vyberte uložené procedury výpisu paměti a funkce, události výpisu paměti a triggery výpisu.

  • V části Možnosti exportu vyberte Exportovat do souboru s vlastním obsahem.

  • Zaškrtněte také políčko Zahrnout vytvořit schéma . Podívejte se na následující obrázek a podívejte se na správnou konfiguraci mysqldump.

    Snímek obrazovky se schématem vytvoření zahrnutí

     Testování

  • Pokud se některá z těchto možností zobrazí jako nedostupná, pravděpodobně brání podoknu Výstup. Stačí změnit rozložení editoru.

    Snímek obrazovky s rozložením editoru

     Testování

  • Vyberte kartu Exportovat průběh.

  • Vyberte Spustit export, všimněte si, že Aplikace MySQL Workbench volá mysqldump nástroj.

  • Otevřete nově vytvořený exportní skript.

  • Vyhledejte všechny DEFINER příkazy a buď změňte platného uživatele, nebo je úplně odeberte.

Poznámka:

Můžete to provést předáním --skip-definer příkazu mysqldump. To není možnost v aplikaci MySQL Workbench; proto je potřeba ručně odebrat řádky v příkazech exportu. Ačkoli zde uvádíme čtyři položky, které se mají odebrat, můžou při migraci z jedné verze MySQL na jinou (například nová rezervovaná slova) selhat.

  • Vyhledejte SET GLOBAL příkazy a buď změňte platného uživatele, nebo je úplně odeberte.

  • Ujistěte se sql\_mode , že není nastavená hodnota NO\_AUTO\_CREATE\_USER.

  • hello\_world Odeberte funkci.

  • V aplikaci MySQL Workbench vytvořte nové připojení ke službě Azure Database for MySQL.

    • Jako název hostitele zadejte úplný server DNS (např. servername.mysql.database.azure.com).

    • Zadejte uživatelské jméno (např. sqlroot@servername).

    • Vyberte kartu SSL.

    • V souboru certifikační autority SSL přejděte do souboru klíče BaltimoreCyberTrustRoot.crt.cer .

    • Vyberte Test připojení, ujistěte se, že se připojení dokončí.

    • Vyberte OK.

      Snímek obrazovky s dialogovým oknem připojení MySQL

      Zobrazí se dialogové okno připojení MySQL.

  • Vyberte souborový> skript SQL a otevřete ho.

  • Přejděte do souboru s výpisem paměti a vyberte Otevřít.

  • Vyberte Provést.

Aktualizace aplikací pro podporu SSL

  • V editoru Visual Studio Code přejděte na rozhraní API pro Java Server.

  • Otevřete soubor launch.json.

  • Aktualizujte DB_CONNECTION_URL a 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. poznamenejte si další parametry SSL.

  • Aktualizujte DB_USER_NAME na conferenceuser@servername.

  • Spusťte konfiguraci ladění a ujistěte se, že aplikace funguje místně s novou databází.

Vrácení parametrů serveru

V cílové instanci Azure Database for MySQL je možné změnit následující parametry. Tyto parametry je možné nastavit prostřednictvím webu Azure Portal nebo pomocí rutin Azure PowerShellu for MySQL.

$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

Změna připojovací řetězec pro rozhraní Java API

  • Pomocí následujících příkazů změňte připojovací řetězec pro rozhraní API v Javě služby App Service.
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}

Poznámka:

Nezapomeňte, že k nastavení připojovací řetězec můžete použít portál.

  • Restartování rozhraní API služby App Service
az webapp restart -g $rgName -n $app\_name

Úspěšně jste dokončili místní migraci do služby Azure Database for MySQL!

Další krok