Známé problémy s migrací do služby Azure Database for MySQL
Známé problémy související s migrací do služby Azure Database for MySQL jsou popsané v následujících oddílech.
Problém s migrací schématu pro cíl flexibilního serveru MySQL v8.0
Chyba: Migrace na flexibilní server MySQL s modulem verze 8.0.30 nebo vyšší může selhat, když je funkce generovat neviditelné primární klíče pro tabulky InnoDB (viz Referenční příručka MySQL :: MySQL 8.0 Referenční příručka :: 13.1.20.11 Generované neviditelné primární klíče). K selhání může dojít při migraci schématu tabulky ze zdroje do cíle, při použití změn během fáze replikace online migrací, při opakování migrace nebo při migraci do cíle, kde bylo schéma migrováno ručně.
Potenciální chybová zpráva:
- Neznámá chyba
- Nepodařilo se vygenerovat neviditelný primární klíč. Sloupec automatického přírůstku již existuje.“
- Sloupec "my_row_id" v cílové tabulce "název tabulky" v databázi "database" ve zdrojové tabulce neexistuje."
Omezení: DmS nepodporuje migraci na instanci flexibilního serveru MySQL, kde je povolená sql_generate_invisible_primary_key.
Alternativní řešení: Nastavte parametr serveru sql_generate_invisible_primary_key pro cílový flexibilní server MySQL na VYPNUTO. Parametr serveru najdete v podokně Parametry serveru na kartě Vše pro cílový flexibilní server MySQL. Kromě toho zahoďte cílovou databázi a začněte s migrací DMS, aby nedošlo k neshodě schémat.
Nekompatibilní režim SQL
Jeden nebo více nekompatibilních režimů SQL může způsobit mnoho různých chyb. Následuje příklad chyby spolu s režimy serveru, na které byste se měli podívat, pokud k této chybě dojde.
Chyba: Při přípravě tabulky {table} v databázi {database} na serveru {server} pro migraci během aktivity {activity} došlo k chybě. V důsledku toho nebude tato tabulka migrována.
Omezení: K této chybě dochází v případě, že jeden z následujících režimů SQL je nastaven na jednom serveru, ale ne na druhém serveru.
Alternativní řešení:
NO_ZERO_DATE
Pokud je výchozí hodnota data v tabulce nebo data ve zdroji 000-00-00 a cílový server má nastavenou NO_ZERO_DATE režim SQL, schéma nebo migrace dat selžou. Existují dvě možná alternativní řešení. Prvním je změna výchozích hodnot sloupců na hodnotu NULL nebo platné datum. Druhou možností je odebrat NO_ZERO_DATE režim SQL z globální proměnné režimu SQL.
NO_AUTO_CREATE_USER
Při spouštění migrací ze zdrojového serveru MySQL 5.7 na cílový server MySQL 8.0, který provádí migraci schématu rutin, dojde k chybám, pokud je na zdrojovém serveru MySQL 5.7 nastavený režim SQL no_auto_create_user.
Problémy s uchováváním binárního protokolu
Chyba: Závažná chyba při čtení binlogu Tato chyba může znamenat, že název souboru binlogu nebo počáteční pozice byly zadány nesprávně.
Omezení: K této chybě dochází, pokud je doba uchovávání binlogu příliš krátká.
Alternativní řešení: V tomto případě je možné nakonfigurovat několik proměnných: binlog_expire_logs_seconds určuje dobu uchovávání a odstranění binlogu může být zcela znemožněno nastavením binlog_expire_logs_auto_purge vypnuto. MySQL 5.7 má zastaralou systémovou proměnnou expire_logs_days.
Vypršení časového limitu při získávání zámků tabulky
Chyba: Při pokusu o získání zámku pro čtení na serveru {server} došlo k výjimce pro konzistentní vytváření zobrazení.
Omezení: K této chybě dochází, když dojde k vypršení časového limitu při získávání zámků u všech tabulek, pokud je povolena transakční konzistence.
Alternativní řešení: Ujistěte se, že vybrané tabulky nejsou uzamčené nebo že na nich nejsou spuštěné žádné dlouhotrvající transakce.
Zápis více než 4 MB dat do služby Azure Storage
Chyba: Text požadavku je příliš velký a překračuje maximální povolený limit.
Omezení: K této chybě pravděpodobně dochází v případě, že existuje příliš mnoho tabulek pro migraci (>10 tisíc). Pro každé volání služby Azure Storage platí limit 4 MB.
Alternativní řešení: Spojte se s podporou vytvořením žádosti o podporu a můžeme poskytnout vlastní skripty pro přímý přístup k rozhraním REST API.
Problém s duplicitní položkou klíče
Chyba: Chyba je často příznakem vypršení časových limitů, problémů se sítí nebo cílového škálování.
Potenciální chybová zpráva: Dávku nelze zapsat do tabulky {table}, protože cílový server vyvolal chybu SQL. Pro kontext – dávka obsahovala podmnožinu řádků vrácených následujícím zdrojovým dotazem.
Omezení: Příčinou této chyby může být vypršení časového limitu nebo přerušení připojení k cíli, což vede k duplicitním primárním klíčům. Může také souviset s několika migracemi na cíl spuštěný současně nebo uživatel, který má testovací úlohy spuštěné v cíli během migrace. Cíl navíc může vyžadovat, aby primární klíče byly jedinečné, i když nejsou potřeba tak na zdroji.
Alternativní řešení: Pokud chcete tento problém vyřešit, ujistěte se, že nejsou spuštěné žádné duplicitní migrace a že jsou zdrojové primární klíče jedinečné. Pokud chyba přetrvává, spojte se s podporou vytvořením žádosti o podporu a můžeme poskytnout vlastní skripty pro přímý přístup k rozhraním REST API.
Replikovaná operace měla chybu neshody řádků
Chyba: Online migrace se nepodaří replikovat očekávaný počet změn.
Potenciální chybová zpráva: Při použití záznamů na cílový server, který byl načten z binárního protokolu zdrojového serveru, došlo k chybě. Změny začaly v binárním protokolu {mysql-bin.log} a na pozici {position} a skončily v binárním protokolu {mysql-bin.log} a na pozici {position}. Všechny záznamy na zdrojovém serveru před pozicí {position} v binárním protokolu {mysql-bin.log} byly zapsány do cíle.
Omezení: Ve zdroji byly příkazy insert a delete do tabulky a odstranění byly zjevným jedinečným indexem.
Alternativní řešení: Doporučujeme migrovat tabulku ručně.
Chyba zkrácení dat tabulky
Chyba: Sloupec výčtu má hodnotu null v jednom nebo více řádcích a cílový režim SQL je nastaven na striktní.
Potenciální chybová zpráva: Dávku nebylo možné zapsat do tabulky {table}, protože došlo k chybě zkrácení dat. Ujistěte se, že data nejsou pro datový typ sloupce tabulky MySQL příliš velká. Pokud je typ sloupce výčtem, ujistěte se, že režim SQL není nastavený jako TRADIČNÍ, STRICT_TRANS_TABLES nebo STRICT_ALL_TABLES a že je stejný ve zdroji a cíli.
Omezení: K chybě dochází v případě, že se historická data zapisovala na zdrojový server, když měla určité nastavení, ale když se změnila, data se nedají přesunout.
Alternativní řešení: Pokud chcete tento problém vyřešit, doporučujeme změnit cílový režim SQL na nestriktní nebo změnit všechny hodnoty null na platné hodnoty.
Selhání vytvoření objektu
Chyba: Po ověření zobrazení došlo k chybě.
Omezení: K chybě dochází při pokusu o migraci zobrazení a tabulky, na kterou má zobrazení odkazovat, nelze najít.
Alternativní řešení: Doporučujeme migrovat zobrazení ručně.
Nelze najít tabulku
Chyba: Došlo k chybě, protože odkazující tabulka nebyla nalezena.
Potenciální chybová zpráva: Kanál nemohl vytvořit schéma objektu {object} pro aktivitu {activity} pomocí strategie MySqlSchemaMigrationViewUsingTableStrategy kvůli provádění dotazu.
Omezení: K chybě může dojít v případě, že zobrazení odkazuje na tabulku, která byla odstraněna nebo přejmenována, nebo při vytvoření zobrazení s nesprávnými nebo neúplnými informacemi. K této chybě může dojít v případě, že se migruje podmnožina tabulek, ale tabulky, na které závisí, nejsou.
Alternativní řešení: Doporučujeme migrovat zobrazení ručně. Zkontrolujte, jestli jsou pro migraci vybrány všechny tabulky odkazované v cizích klíčích a příkazech CREATE VIEW.
Všechna sdílená připojení jsou přerušená
Chyba: Všechna připojení na zdrojovém serveru byla přerušena.
Omezení: K chybě dochází, když dojde ke ztrátě všech připojení získaných na začátku počátečního zatížení kvůli restartování serveru, problémům se sítí, vysokému provozu na zdrojovém serveru nebo jiným přechodným problémům. Tato chyba není obnovitelná. K této chybě navíc dochází v případě, že se během časového období údržby provede pokus o migraci serveru.
Alternativní řešení: Migrace se musí restartovat a doporučujeme zvýšit výkon zdrojového serveru. Dalším problémem jsou skripty, které ukončují dlouhotrvající připojení, brání tomu, aby tyto skripty fungovaly.
Konzistentní snímek je poškozený
Omezení: K chybě dochází, když zákazník provádí DDL během počátečního zatížení instance migrace.
Alternativní řešení: Pokud chcete tento problém vyřešit, doporučujeme, abyste se během počátečního načtení vyhnuli změnám DDL.
Omezení cizího klíče
Chyba: K chybě dochází v případě, že dojde ke změně typu odkazovaného cizího klíče z tabulky.
Potenciální chybová zpráva: Odkazování na sloupec {pk column 1} a odkazovaný sloupec {fk sloupec 1} v omezení cizího klíče {key} nejsou kompatibilní.
Omezení: Chyba může způsobit selhání migrace schématu tabulky, protože sloupec PK v tabulce 1 nemusí být kompatibilní se sloupcem FK v tabulce 2.
Alternativní řešení: Pokud chcete tento problém vyřešit, doporučujeme po dokončení procesu migrace vypustit cizí klíč a znovu ho vytvořit.