Sdílet prostřednictvím


Migrace databáze MySQL na flexibilní server Azure Database for MySQL s využitím výpisu a obnovení

Tento článek vysvětluje dva běžné způsoby zálohování a obnovení databází na flexibilním serveru Azure Database for MySQL.

  • Výpis a obnovení z příkazového řádku (pomocí mysqldump)
  • Výpis a obnovení pomocí PHPMyAdmin.

Podrobné informace a případy použití migrace databází na flexibilní server Azure Database for MySQL najdete také v průvodci migrací databází. Tato příručka obsahuje pokyny, které vedou k úspěšnému plánování a provedení migrace MySQL do Azure.

Než začnete

Pokud chcete tento návod projít, musíte mít:

Tip

Pokud chcete migrovat velké databáze s velikostmi databází většími než 1 TB, můžete zvážit použití komunitních nástrojů, jako je mydumper nebo myloader , který podporuje paralelní export a import. Zjistěte , jak migrovat velké databáze MySQL.

Běžné případy použití výpisu a obnovení

Nejběžnější případy použití:

  • Přechod od jiného poskytovatele spravovaných služeb – Většina poskytovatelů spravovaných služeb nemusí z bezpečnostních důvodů poskytovat přístup k souboru fyzického úložiště, takže je jedinou možností migrace logického zálohování a obnovení.

  • Migrace z místního prostředí nebo virtuálního počítače – Flexibilní server Azure Database for MySQL nepodporuje obnovení fyzických záloh, což provádí logické zálohování a obnovení jako jediný přístup.

  • Přesun úložiště záloh z místně redundantního úložiště do geograficky redundantního úložiště – Flexibilní server Azure Database for MySQL umožňuje konfigurovat místně redundantní nebo geograficky redundantní úložiště pro zálohování, které je povolené jenom během vytváření serveru. Po zřízení serveru nemůžete měnit možnost redundance úložiště zálohování. Pokud chcete přesunout úložiště záloh z místně redundantního úložiště do geograficky redundantního úložiště, výpis a obnovení je jedinou možností.

  • Migrace z alternativních úložných modulů na InnoDB – Flexibilní server Azure Database for MySQL podporuje pouze modul úložiště InnoDB, a proto nepodporuje alternativní moduly úložiště. Pokud jsou vaše tabulky nakonfigurované s jinými moduly úložiště, před migrací na flexibilní server Azure Database for MySQL je převeďte do formátu modulu InnoDB.

    Pokud máte například WordPress nebo WebApp pomocí tabulek MyISAM, nejprve tyto tabulky převeďte migrací do formátu InnoDB před obnovením na flexibilní server Azure Database for MySQL. Pomocí klauzule ENGINE=InnoDB nastavte modul použitý při vytváření nové tabulky a potom před obnovením přeneste data do kompatibilní tabulky.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    

Důležité

  • Abyste se při výpisu databází vyhnuli problémům s kompatibilitou, ujistěte se, že zdrojový i cílový systém používají stejnou verzi MySQL. Pokud je například váš existující server MySQL verze 5.7, měli byste migrovat na instanci flexibilního serveru Azure Database for MySQL nakonfigurovanou tak, aby běžela verze 5.7. Příkaz mysql_upgrade nefunguje v instanci flexibilního serveru Azure Database for MySQL a nepodporuje se.
  • Pokud potřebujete upgradovat napříč verzemi MySQL, nejprve vyexportujte nebo vyexportujte databázi nižší verze do vyšší verze MySQL ve vlastním prostředí. Pak spusťte mysql_upgrade před pokusem o migraci do instance flexibilního serveru Azure Database for MySQL.

Důležité informace o výkonu

Při optimalizaci výkonu si všimněte těchto aspektů při dumpingu velkých databází:

  • Při dumpingu exclude-triggers databází použijte možnost v mysqldump. Vyloučí triggery ze souborů výpisu paměti, aby se zabránilo aktivaci příkazů triggeru během obnovení dat.
  • single-transaction Pomocí možnosti nastavit režim izolace transakce na REPEATABLE READ a odešle příkaz START TRANSACTION SQL na server před výpisem dat. Ukládání mnoha tabulek v rámci jedné transakce způsobí, že během obnovení se spotřebuje některé další úložiště. Možnost single-transaction a možnost lock-tables se vzájemně vylučují, protože LOCK TABLES způsobí, že všechny čekající transakce budou potvrzeny implicitně. Pokud chcete vyhodit velké tabulky, zkombinujte single-transaction možnost s quick možností.
  • extended-insert Použijte syntaxi s více řádky, která obsahuje několik seznamů HODNOTA. Výsledkem je menší soubor s výpisem paměti a při opětovném načtení souboru se zrychlí vložení.
  • order-by-primary Při dumpingu databází použijte možnost v mysqldump, aby se data skriptovala v pořadí primárního klíče.
  • disable-keys Pokud chcete před načtením zakázat omezení cizího klíče, použijte možnost v mysqldump při dumpingu dat. Zakázání kontrol cizích klíčů poskytuje zvýšení výkonu. Povolte omezení a ověřte data po načtení, abyste zajistili referenční integritu.
  • V případě potřeby používejte dělené tabulky.
  • Načtěte data paralelně. Vyhněte se příliš mnoho paralelismu, které by způsobilo dosažení limitu prostředků, a monitorování prostředků pomocí metrik dostupných na webu Azure Portal.
  • defer-table-indexes Při dumpingu databází použijte možnost v mysqldump, aby se po načtení dat tabulek stalo vytvoření indexu.
  • Zkopírujte záložní soubory do objektu blob Nebo úložiště Azure a proveďte obnovení odsud, což by mělo být mnohem rychlejší než provádění obnovení po internetu.

Vytvoření databáze v cílové instanci flexibilního serveru Azure Database for MySQL

Vytvořte prázdnou databázi na cílové instanci flexibilního serveru Azure Database for MySQL, do které chcete migrovat data. K vytvoření databáze použijte nástroj, jako je MySQL Workbench nebo mysql.exe. Databáze může mít stejný název jako databáze, která obsahuje data s výpisem paměti, nebo můžete vytvořit databázi s jiným názvem.

Pokud se chcete připojit, vyhledejte informace o připojení v přehledu instance flexibilního serveru Azure Database for MySQL.

Snímek obrazovky s informacemi o připojení na webu Azure Portal

Přidejte informace o připojení do aplikace MySQL Workbench.

Snímek obrazovky s připojovacím řetězcem aplikace MySQL Workbench

Příprava cílové instance flexibilního serveru Azure Database for MySQL pro rychlé načítání dat

Pokud chcete připravit cílovou instanci flexibilního serveru Azure Database for MySQL pro rychlejší načítání dat, je potřeba změnit následující parametry a konfiguraci serveru.

  • max_allowed_packet – nastavte 1073741824 (tj. 1 GB), aby se zabránilo problému s přetečením kvůli dlouhým řádkům.
  • slow_query_log – pokud chcete vypnout protokol pomalých dotazů, nastavte na vypnuto. Tím se eliminuje režie způsobená pomalým protokolováním dotazů během načítání dat.
  • query_store_capture_mode – pokud chcete vypnout úložiště dotazů, nastavte hodnotu NONE. Tím se eliminuje režie způsobená aktivitami vzorkování úložištěm dotazů.
  • 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 instanci flexibilního serveru Azure Database for MySQL.
  • innodb_io_capacity a innodb_io_capacity_max – Změňte na 9000 z parametrů serveru na webu Azure Portal, abyste zlepšili využití vstupně-výstupních operací pro optimalizaci rychlosti migrace.
  • innodb_write_io_threads a innodb_write_io_threads – Změňte na 4 z parametrů serveru na webu Azure Portal, aby se zlepšila rychlost migrace.
  • Vertikální navýšení kapacity úrovně úložiště – vstupně-výstupní operace pro flexibilní server Azure Database for MySQL se postupně zvyšuje s nárůstem úrovně úložiště. Pro rychlejší načítání můžete chtít zvýšit úroveň úložiště, aby se zvýšil počet zřízených vstupně-výstupních operací za sekundu. Mějte na paměti, že úložiště je možné vertikálně navýšit, nikoli snížit.

Po dokončení migrace můžete vrátit zpět parametry serveru a konfiguraci výpočetní vrstvy na předchozí hodnoty.

Výpis a obnovení pomocí nástroje mysqldump

Vytvoření záložního souboru z příkazového řádku pomocí mysqldump

Pokud chcete zálohovat existující databázi MySQL na místním místním serveru nebo na virtuálním počítači, spusťte následující příkaz:

mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]

Parametry, které se mají poskytnout, jsou:

  • [uname] Uživatelské jméno databáze
  • [pass] Heslo pro vaši databázi (všimněte si, že mezi -p a heslem není mezera)
  • [dbname] Název databáze
  • [backupfile.sql] Název souboru zálohy databáze
  • [--opt] Možnost mysqldump

Pokud například chcete zálohovat databázi s názvem testdb na serveru MySQL s uživatelským jménem testuser a bez hesla k souboru testdb_backup.sql, použijte následující příkaz. Příkaz zálohuje testdb databázi do souboru s názvem testdb_backup.sql, který obsahuje všechny příkazy SQL potřebné k opětovnému vytvoření databáze. Ujistěte se, že uživatelské jméno testuser má alespoň oprávnění SELECT pro výpisy tabulek, ZOBRAZIT ZOBRAZENÍ pro výpisy zobrazení, TRIGGER pro výpisy triggerů a ZAMKNOUT TABULKY, pokud --single-transaction se tato možnost nepoužívá.

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'testuser'@'hostname' IDENTIFIED BY 'password';

Teď spusťte mysqldump a vytvořte zálohu testdb databáze.

mysqldump -u root -p testdb > testdb_backup.sql

Pokud chcete vybrat konkrétní tabulky v databázi, které chcete zálohovat, uveďte názvy tabulek oddělené mezerami. Pokud například chcete zálohovat pouze tabulky table1 a table2 z testovací databáze, postupujte takto:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Pokud chcete zálohovat více než jednu databázi najednou, použijte --database přepínač a seznam názvů databází oddělených mezerami.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Obnovení databáze MySQL pomocí příkazového řádku

Po vytvoření cílové databáze můžete pomocí příkazu mysql obnovit data do konkrétní nově vytvořené databáze ze souboru výpisu paměti.

mysql -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

V tomto příkladu obnovte data do nově vytvořené databáze v cílové instanci flexibilního serveru Azure Database for MySQL.

Tady je příklad použití tohoto mysql pro jednoúčelový server :

mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Tady je příklad použití tohoto mysql pro flexibilní server :

mysql -h mydemoserver.mysql.database.azure.com -u myadmin -p testdb < testdb_backup.sql

Poznámka:

K obnovení databáze MySQL můžete také použít klientský nástroj MySQL Workbench.

Výpis a obnovení pomocí PHPMyAdmin

K výpisu a obnovení databáze pomocí PHPMyadmin postupujte podle těchto kroků.

Poznámka:

Pro jeden server musí být uživatelské jméno v tomto formátu , "username@servername", ale pro flexibilní server můžete použít pouze uživatelské jméno, pokud pro flexibilní server použijete "username@servername", připojení selže.

Export pomocí PHPMyadmin

K exportu můžete použít běžný nástroj phpMyAdmin, který už máte v prostředí nainstalovaný místně. Export databáze MySQL pomocí PHPMyAdmin:

  1. Otevřete phpMyAdmin.
  2. Vyberte vaši databázi. V seznamu vlevo vyberte název databáze.
  3. Vyberte odkaz Exportovat. Zobrazí se nová stránka s výpisem paměti databáze.
  4. V oblasti Export vyberte odkaz Vybrat vše a zvolte tabulky v databázi.
  5. V oblasti možností SQL vyberte příslušné možnosti.
  6. Vyberte možnost Uložit jako soubor a odpovídající možnost komprese a pak vyberte tlačítko Přejít. Mělo by se zobrazit dialogové okno s výzvou k místnímu uložení souboru.

Import pomocí PHPMyAdmin

Import databáze se podobá exportu. Proveďte následující akce:

  1. Otevřete phpMyAdmin.
  2. Na stránce nastavení phpMyAdmin vyberte Přidat a přidejte instanci flexibilního serveru Azure Database for MySQL. Zadejte podrobnosti o připojení a přihlaste se k informacím.
  3. Vytvořte správně pojmenovanou databázi a vyberte ji na levé straně obrazovky. Chcete-li přepsat existující databázi, vyberte název databáze, zaškrtněte všechna políčka vedle názvů tabulek a výběrem klávesy Drop odstraňte existující tabulky.
  4. Výběrem odkazu SQL zobrazíte stránku, na které můžete psát příkazy SQL, nebo nahrajte soubor SQL.
  5. Pomocí tlačítka Procházet vyhledejte soubor databáze.
  6. Výběrem tlačítka Přejít exportujte zálohu, spusťte příkazy SQL a znovu vytvořte databázi.

Známé problémy

Pro známé problémy, tipy a triky doporučujeme podívat se na náš blog o techcommunity.