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
Pokud chcete stejný postup provést s nástrojem mysql, stáhněte si kořenovou certifikaci certifikační autority do složky c:\temp (nastavte tento adresář).
Poznámka:
Certifikát se může změnit. Referenční informace o konfiguraci připojení SSL ve vaší aplikaci pro bezpečné připojení ke službě Azure Database for MySQL najdete v případě nejnovějších informací o certifikátu.
Na příkazovém řádku spusťte následující příkaz, nezapomeňte aktualizovat tokeny:
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 na1073741824
(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 je132070244352
.innodb\_io\_capacity
&innodb\_io\_capacity\_max
Změňte parametr tak, aby9000
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 je151
, max je5000
.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.
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.
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á hodnotaNO\_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.
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!