Upgrade hlavní verze na flexibilním serveru Azure Database for MySQL
Poznámka:
Tento článek obsahuje odkazy na termín slave (podřízený) , což je termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.
Tento článek popisuje, jak můžete upgradovat hlavní verzi MySQL na flexibilním serveru Azure Database for MySQL. Tato funkce umožňuje zákazníkům provádět místní upgrady serverů MySQL 5.7 na MySQL 8.0 bez přesunu dat nebo nutnosti provádět jakékoli změny aplikace připojovací řetězec.
Důležité
- Doba trvání výpadku se liší podle velikosti instance databáze a počtu tabulek, které obsahuje.
- Při zahájení upgradu hlavní verze flexibilního serveru Azure Database for MySQL prostřednictvím rozhraní REST API nebo sady SDK se vyhněte úpravám dalších vlastností služby ve stejném požadavku. Současné změny nejsou povoleny a můžou vést k nezamýšleným výsledkům nebo selhání požadavku. Proveďte změny vlastností v samostatných operacích po dokončení upgradu.
- Některé úlohy nemusí po upgradu z verze 5.7 na 8.0 vykazovat vyšší výkon. Doporučujeme vyhodnotit výkon úlohy tak, že nejprve vytvoříte server repliky (jako testovací server), pak ho povyšte na samostatný server a potom spustíte úlohu na testovacím serveru před implementací upgradu v produkčním prostředí.
- Upgrade hlavní verze MySQL je nevratný. Nasazení může selhat, pokud se při ověřování zjistí, že jsou na serveru nakonfigurované nějaké odebrané nebo zastaralé funkce. Na serveru můžete provést potřebné změny konfigurace a zkusit upgrade zopakovat.
Požadavky
- Repliky pro čtení s MySQL verze 5.7 by měly být upgradovány před replikací primárního serveru, aby byla kompatibilní mezi různými verzemi MySQL, přečtěte si další informace o kompatibilitě replikace mezi verzemi MySQL.
- Před upgradem produkčních serverů je teď jednodušší a efektivnější díky naší integrované funkci Ověřit na webu Azure Portal. Tento nástroj předem zkontroluje kompatibilitu schématu databáze s MySQL 8.0 a zvýrazní potenciální problémy. I když tuto pohodlnou možnost nabízíme, důrazně doporučujeme použít oficiální nástroj Pro kontrolu upgradu Oracle MySQL k otestování kompatibility schématu databáze a provedení nezbytného regresního testu k ověření kompatibility aplikací s funkcemi odebranými/ v nové verzi MySQL.
Poznámka:
Pokud k kontrole kompatibility schématu používáte oficiální nástroj Oracle, může dojít k určitým upozorněním, která u uložených procedur označují neočekávané tokeny, například:
mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'
mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode
Tato upozornění můžete bezpečně ignorovat. Odkazují na předdefinované uložené procedury s předponou mysql., které se používají k podpoře funkcí Azure MySQL. Tato upozornění nemají vliv na funkčnost databáze. - Před provedením upgradu hlavní verze na produkčním serveru aktivujte zálohování na vyžádání, které lze použít k vrácení zpět na verzi 5.7 z úplného pořízeného zálohování na vyžádání.
- Než budete pokračovat v upgradu hlavní verze, ujistěte se, že v databázi nejsou žádné aktivní nebo čekající transakce XA, protože probíhající transakce XA mohou potenciálně způsobit selhání procesu upgradu. Chcete-li se tomuto problému vyhnout, nejprve zkontrolujte všechny transakce XA v "připraveném" stavu spuštěním
XA RECOVER;
. U všech identifikovaných transakcí použijteXA ROLLBACK '{xid}'
; k vrácení každé transakce zpět, přičemž {xid} nahraďte ID transakce. Před zahájením upgradu zajistěte, aby všechny transakce XA byly potvrzeny nebo vráceny zpět, aby se zachovala konzistence transakcí a snížila riziko selhání upgradu.
Provedení plánovaného upgradu hlavní verze z MySQL 5.7 na MySQL 8.0 pomocí webu Azure Portal pro servery SKU s možností nárazového škálování
Provedení upgradu hlavní verze pro výpočetní úroveň SKU Azure Database for MySQL Burstable vyžaduje specializovaný pracovní postup. Důvodem je to, že upgrady hlavních verzí jsou náročné na prostředky a vyžadují významný procesor a paměť. Instance SKU s možností nárůstu kapacity, které jsou založené na kreditech, můžou za těchto požadavků bojovat, což může způsobit selhání procesu upgradu. Proto při upgradu skladové položky s možností nárazového škálování systém nejprve upgraduje výpočetní úroveň na skladovou položku pro obecné účely, aby se zajistilo, že pro upgrade budou k dispozici dostatečné prostředky.
Pokud chcete provést upgrade hlavní verze pro výpočetní úroveň SKU Azure Database for MySQL Burstable pomocí webu Azure Portal, postupujte takto:
Na webu Azure Portal vyberte stávající flexibilní server Azure Database for MySQL 5.7.
Důležité
Doporučujeme nejprve provést upgrade na obnovené kopii serveru místo přímého upgradu produkčního prostředí. Podívejte se, jak provést obnovení k určitému bodu v čase.
Na stránce Přehled na panelu nástrojů vyberte Upgradovat.
Důležité
Před upgradem přejděte na odkaz pro seznam funkcí odebraných v MySQL 8.0. Pomocí okna Parametry serveru na webu Azure Portal ověřte sql_mode zastaralé hodnoty a pomocí okna Parametry serveru na webu Azure Portal je odeberte nebo zrušte jejich výběr z aktuálního flexibilního serveru Azure Database for MySQL. sql_mode s hodnotami NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS a NO_TABLE_OPTIONS se už v MySQL 8.0 nepodporují.
Ověření kompatibility schématu
Než budete pokračovat v upgradu, spusťte oficiální nástroj pro kontrolu upgradu MySQL společnosti Oracle a ověřte, že vaše aktuální schéma databáze je kompatibilní s MySQL 8.0. Tento krok je zásadní pro zajištění hladkého procesu upgradu.
Rozhodnutí o předběžném upgradu
Než budete pokračovat v upgradu, musíte zvolit úroveň výpočetních prostředků, na kterou chcete upgradovat, a provést upgrade hlavní verze. Ve výchozím nastavení se systém upgraduje z skladové položky Burstable na základní skladovou položku pro obecné účely, ale v případě potřeby se můžete rozhodnout upgradovat na vyšší úroveň výpočetních prostředků.
Poznámka:
I když váš server během upgradu funguje na úrovni Pro obecné účely, budou se vám účtovat pouze skutečné prostředky pro obecné účely použité během tohoto období.
Rozhodnutí po upgradu
Po upgradu se rozhodněte, jestli chcete skladovou položku pro obecné účely zachovat, nebo se po upgradu vrátit k skladové posílané skladové položky. Tato volba se zobrazí během počátečních kroků upgradu.
Systém automaticky upgraduje úroveň výpočetních prostředků ze skladové položky Burstable na vybranou skladovou položku pro obecné účely, která podporuje upgrade hlavní verze.
Upgrade hlavní verze
Po upgradu úrovně výpočetních prostředků zahájí systém proces upgradu hlavní verze. Průběh upgradu můžete monitorovat prostřednictvím webu Azure Portal. Proces upgradu může nějakou dobu trvat v závislosti na velikosti a aktivitě databáze.
Poznámka:
Pokud se upgrade hlavní verze nezdaří, úroveň výpočetních prostředků se automaticky nepřevrátí k předchozí skladové posadě SKU s možností nárazového škálování. Zákazníci tak budou moct pokračovat v upgradu hlavní verze, aniž by museli provést upgrade úrovně výpočetních prostředků znovu.
Automatická reversion
Na základě vašeho rozhodnutí o předběžném upgradu si systém buď ponechá skladovou položku pro obecné účely, nebo se po dokončení upgradu automaticky vrátí k skladové po upgradu.
Poznámka:
Pokud jste se rozhodli, že se automaticky vrátíte na skladovou položku Burstable, systém se ve výchozím nastavení vrátí k skladové poště B2S.
Provedení plánovaného upgradu hlavní verze z MySQL 5.7 na MySQL 8.0 pomocí webu Azure Portal pro obecné účely a Pro důležité obchodní informace serverů SKU
Pokud chcete provést upgrade hlavní verze flexibilního serveru Azure Database for MySQL 5.7 pomocí webu Azure Portal, proveďte následující kroky.
Na webu Azure Portal vyberte stávající flexibilní server Azure Database for MySQL 5.7.
Důležité
Doporučujeme nejprve provést upgrade na obnovené kopii serveru místo přímého upgradu produkčního prostředí. Podívejte se, jak provést obnovení k určitému bodu v čase.
Na stránce Přehled na panelu nástrojů vyberte Upgradovat.
Důležité
Před upgradem přejděte na odkaz pro seznam funkcí odebraných v MySQL 8.0. Pomocí okna Parametry serveru na webu Azure Portal ověřte sql_mode zastaralé hodnoty a pomocí okna Parametry serveru na webu Azure Portal je odeberte nebo zrušte jejich výběr z aktuálního flexibilního serveru Azure Database for MySQL. sql_mode s hodnotami NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS a NO_TABLE_OPTIONS se už v MySQL 8.0 nepodporují.
Provedení ověření před upgradem
Než budete pokračovat v upgradu, vyberte tlačítko Ověřit a zkontrolujte kompatibilitu serveru s MySQL 8.0.
Důležité
Když použijete funkci Ověřit ke kontrole kompatibility schématu databáze s MySQL 8.0, mějte na paměti, že zahrnuje uzamčení tabulek k přesnému vyhodnocení celého schématu. Tento proces může vést k vypršení časových limitů dotazů.
Proto se doporučuje neprovádět ověřování během špičky v pracovní době nebo v případě, že u databáze dochází k vysokému provozu. Výběr období nízké aktivity pro ověření může pomoct minimalizovat dopad na vaše operace.Na bočním panelu Upgrade ověřte ve verzi MySQL textové pole pro upgrade hlavní verzi MySQL, na kterou chcete upgradovat, tj. 8.0.
Před upgradem primárního serveru musíte nejprve upgradovat všechny přidružené servery repliky pro čtení. Dokud se tento postup nedokončí, upgrade se zakáže.
Na primárním serveru vyberte potvrzovací zprávu, abyste ověřili, že byly upgradovány všechny servery repliky, a pak vyberte Upgradovat.
Na replikách pro čtení a samostatných serverech je upgrade ve výchozím nastavení povolený.
Provedení plánovaného upgradu hlavní verze z MySQL 5.7 na MySQL 8.0 pomocí Azure CLI
Pokud chcete provést upgrade hlavní verze flexibilního serveru Azure Database for MySQL 5.7 pomocí Azure CLI, proveďte následující kroky.
Nainstalujte Azure CLI pro Windows nebo pomocí Azure CLI v Azure Cloud Shellu spusťte příkazy upgradu.
Tento upgrade vyžaduje verzi 2.40.0 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze. Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Po přihlášení spusťte příkaz az mysql server upgrade .
az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
V potvrzovací výzvě zadejte y , abyste potvrdili nebo n zastavili proces upgradu, a stiskněte Enter.
Provedení upgradu hlavní verze z MySQL 5.7 na MySQL 8.0 na serveru repliky pro čtení pomocí webu Azure Portal
Pokud chcete provést upgrade hlavní verze flexibilního serveru Azure Database for MySQL 5.7 na MySQL 8.0 na repliku pro čtení pomocí webu Azure Portal, proveďte následující kroky.
Na webu Azure Portal vyberte existující flexibilní server Azure Database for MySQL 5.7 pro čtení serveru repliky.
Na stránce Přehled na panelu nástrojů vyberte Upgradovat.
Důležité
Před upgradem přejděte na odkaz pro seznam funkcí odebraných v MySQL 8.0. Pomocí okna Parametry serveru na webu Azure Portal ověřte sql_mode zastaralé hodnoty a pomocí okna Parametry serveru na webu Azure Portal je odeberte nebo zrušte jejich výběr z aktuálního flexibilního serveru Azure Database for MySQL.
V části Upgrade vyberte Upgrade a upgradujte flexibilní server Azure Database for MySQL 5.7 na server repliky pro čtení MySQL 8.0.
Zobrazí se oznámení s potvrzením, že upgrade proběhl úspěšně.
Na stránce Přehled ověřte, že server repliky pro čtení flexibilního serveru Azure Database for MySQL používá verzi 8.0.
Teď přejděte na primární server a proveďte upgrade hlavní verze.
Provedení minimálního výpadku upgradu hlavní verze z MySQL 5.7 na MySQL 8.0 pomocí replik pro čtení
Pokud chcete provést upgrade hlavní verze flexibilního serveru Azure Database for MySQL 5.7 na MySQL 8.0 s minimálními výpadky pomocí serverů replik pro čtení, proveďte následující kroky.
Na webu Azure Portal vyberte stávající flexibilní server Azure Database for MySQL 5.7.
Vytvořte repliku pro čtení z primárního serveru.
Upgradujte repliku pro čtení na verzi 8.0.
Po potvrzení, že server repliky používá verzi 8.0, zastavte aplikaci v připojení k primárnímu serveru.
Zkontrolujte stav replikace a ujistěte se, že replika zachytila primární server, aby se všechna data synchronizovala a aby se na primárním serveru neprováděly žádné nové operace.
Potvrďte zobrazení stavu repliky pomocí příkazu zobrazit stav repliky na serveru repliky.
SHOW SLAVE STATUS\G
Pokud je stav Slave_IO_Running a Slave_SQL_Running ano a hodnota Seconds_Behind_Master je 0, replikace funguje dobře. Seconds_Behind_Master označuje, jak pozdě je replika. Pokud hodnota není 0, replika stále zpracovává aktualizace. Po potvrzení, že hodnota Seconds_Behind_Master je ***, je bezpečné zastavit replikaci.
Zvyšte úroveň repliky pro čtení na primární tím, že zastavíte replikaci.
Nastavte parametr serveru read_only na hodnotu 0 (VYPNUTO) a začněte psát na upřednostněné primární.
Nasměrujte aplikaci na novou primární (bývalou repliku), na které běží server 8.0. Každý server má jedinečný připojovací řetězec. Místo zdroje aktualizujte aplikaci tak, aby odkazovat na (bývalou) repliku.
Poznámka:
Tento scénář způsobuje výpadek pouze během kroků 4 až 7.
Nejčastější dotazy
Způsobí to výpadek serveru a pokud ano, jak dlouho?
Pokud chcete mít během upgradů minimální prostoje, postupujte podle kroků uvedených v části Provedení minimálního výpadku upgradu hlavní verze z MySQL 5.7 na MySQL 8.0 pomocí replik pro čtení. Server nebude během procesu upgradu dostupný, proto doporučujeme tuto operaci provést během časového období plánované údržby. Odhadovaný výpadek závisí na velikosti databáze, zřízené velikosti úložiště (zřízené vstupně-výstupní operace za sekundu) a počtu tabulek v databázi. Doba upgradu je přímo úměrná počtu tabulek na serveru. Pokud chcete odhadnout výpadek pro vaše serverové prostředí, doporučujeme nejprve provést upgrade na obnovenou kopii serveru.
Co se stane s mými zálohami po upgradu?
Všechny zálohy (automatizované nebo na vyžádání) pořízené před upgradem hlavní verze, při použití k obnovení se vždy obnoví na server se starší verzí (5.7). Všechny zálohy (automatizované nebo na vyžádání) pořízené po upgradu hlavní verze se obnoví na server s upgradovanou verzí (8.0). Před provedením upgradu hlavní verze pro snadné vrácení zpět se důrazně doporučuje provést zálohování na vyžádání.
V současné době používám skladovou položku Burstable, plánuje Microsoft v budoucnu podporovat upgrade hlavní verze pro tuto skladovou položku?
Skladová položka s možností rozšíření nemůže podporovat upgrade hlavní verze kvůli omezení výkonu této skladové položky.
Pokud potřebujete ve své instanci flexibilního serveru Azure Database for MySQL provést upgrade hlavní verze a aktuálně používáte skladovou položku Burstable, jedním dočasným řešením by bylo upgradovat na skladovou položku Pro obecné účely nebo Pro důležité obchodní informace skladovou položku, provést upgrade a pak přepnout zpět na skladovou položku Burstable.
Upgrade na vyšší skladovou položku může zahrnovat změnu cen a může vést ke zvýšení nákladů na vaše nasazení. Vzhledem k tomu, že proces upgradu neočekává dlouhou dobu, neměly by být přidané náklady významné.