Migrace databáze MySQL do služby Azure Database for MySQL pomocí výpisu a obnovení.

platí pro: Azure Database for MySQL – jeden server Azure Database for MySQL – flexibilní Server

Tento článek popisuje dva běžné způsoby zálohování a obnovení databází v 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í do Azure Database for MySQL najdete také v Průvodci migrací databáze . Tato příručka poskytuje pokyny, které povedou k úspěšnému plánování a provádění migrace MySQL do Azure.

Než začnete

Pokud chcete projít tento průvodce, musíte mít:

Tip

Pokud chcete migrovat velké databáze s velikostmi databáze více než 1 TBs, můžete zvážit použití nástrojů komunity jako mydumper/myloader , které podporují paralelní export a import. Naučte se migrovat velké databáze MySQL.

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

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

  • Přesun od jiného poskytovatele spravované služby : Většina poskytovatelů spravované služby nemusí poskytnout přístup k fyzickému souboru úložiště z důvodu zabezpečení, takže je jedinou možností, jak provést migraci, je logické zálohování a obnovení.

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

  • Přesunutí úložiště záloh z místně redundantního na geograficky redundantní úložiště – Azure Database for MySQL umožňuje, aby se konfigurace místně redundantního úložiště nebo geograficky redundantního úložiště pro zálohování mohla povolit jenom během vytváření serveru. Po zřízení serveru není možné změnit možnost redundance úložiště zálohování. Aby bylo možné přesunout úložiště záloh z místně redundantního úložiště do geograficky redundantního úložiště, jedinou možností je vypsat a obnovit.

  • migrace z alternativních úložných motorů do InnoDB -Azure Database for MySQL podporuje jenom InnoDB modul Storage, a proto nepodporuje alternativní úložné moduly. Pokud jsou vaše tabulky nakonfigurované s jinými úložnými moduly, převeďte je do formátu modulu InnoDB před migrací na Azure Database for MySQL.

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

    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 například váš stávající Server MySQL má verzi 5,7, měli byste migrovat na Azure Database for MySQL nakonfigurovaná tak, aby běžela verze 5,7. mysql_upgradePříkaz nefunguje na Azure Database for MySQLm serveru a není podporovaný.
  • Pokud potřebujete upgradovat v rámci verze MySQL, nejdřív vypsat nebo exportovat databázi nižší verze do vyšší verze MySQL ve vlastním prostředí. Potom spusťte mysql_upgrade příkaz, než se pokusíte o migraci do Azure Database for MySQL.

Otázky výkonu

Pro optimalizaci výkonu si všimněte těchto doporučení při dumpingu velkých databází:

  • exclude-triggersPři ukládání databází použijte možnost v mysqldump. Vylučte triggery ze souborů s výpisem paměti, aby nedocházelo k příkazům triggeru během obnovování dat.
  • pomocí single-transaction možnosti nastavte režim izolace transakce na možnost opakované čtení a odešlete příkaz spustit transakci SQL na server před dumpingovými daty. Dumpingové množství tabulek v rámci jedné transakce způsobí, že se během obnovování spotřebuje nějaké dodatečné úložiště. single-transactionMožnost a lock-tables možnost se vzájemně vylučují, protože uzamčené tabulky způsobují implicitní potvrzení všech čekajících transakcí. Pokud chcete vypsat velké tabulky, zkombinujte single-transaction možnost s quick možností.
  • Použijte extended-insert syntaxi s více řádky, která obsahuje několik seznamů hodnot. Výsledkem je menší soubor výpisu paměti a při opětovném načtení souboru se urychlí vložení.
  • order-by-primaryPři výpisu databází použijte možnost mysqldump, aby se data využívala v pořadí primárního klíče.
  • disable-keysPokud chcete před načtením zakázat omezení cizího klíče, použijte možnost v mysqldump. Zakázání kontrol cizích klíčů poskytuje nárůst výkonu. Povolte omezení a ověřte data po zatížení, abyste zajistili referenční integritu.
  • V případě potřeby použijte dělené tabulky.
  • Načtěte data paralelně. Vyhněte se příliš moc paralelismu, protože by došlo k dosažení limitu prostředků a monitorování prostředků pomocí metrik dostupných v Azure Portal.
  • Použijte defer-table-indexes možnost v mysqlpump při vytváření dumpingových databází, aby se vytvoření indexu stalo po načtení dat tabulky.
  • pomocí skip-definer možnosti v mysqlpump vynechejte klauzule pro definování a SQL zabezpečení z příkazů create pro zobrazení a uložené procedury. když znovu načtete soubor s výpisem paměti, vytvoří objekty, které používají výchozí definice a SQL hodnoty zabezpečení.
  • Zkopírujte záložní soubory do objektu blob Azure nebo do úložiště a proveďte obnovení z tohoto místa, což by mělo být mnohem rychlejší než provádění obnovení přes Internet.

Vytvoření databáze na cílovém serveru Azure Database for MySQL

Na cílovém Azure Database for MySQL serveru vytvořte prázdnou databázi, do které chcete migrovat data. K vytvoření databáze použijte nástroj, jako je například MySQL Workbench nebo mysql.exe. Databáze může mít stejný název jako databáze, která obsahuje dumpingová data, 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 Azure Database for MySQL.

Vyhledat informace o připojení v Azure Portal

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

Připojovací řetězec MySQL Workbench

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

Chcete-li připravit cílový Azure Database for MySQL server pro rychlejší načítání dat, je třeba změnit následující parametry serveru a konfiguraci.

  • max_allowed_packet – nastavte na 1073741824 (tj. 1 GB), aby se předešlo problémům s přetečením kvůli dlouhým řádkům.
  • slow_query_log – pro vypnutí protokolu pomalého dotazu je nastavené 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 – pro vypnutí úložiště dotazů nastavte na hodnotu žádné. Tím se eliminuje režie způsobená aktivitami vzorkování podle úložiště dotazů.
  • innodb_buffer_pool_size – navýšení kapacity serveru na 32 paměťově optimalizované SKU z cenové úrovně portálu během migrace, aby se zvýšila innodb_buffer_pool_size. Innodb_buffer_pool_size se dá zvýšit jenom tak, že se pro Azure Database for MySQL server škáluje výpočetní výkon.
  • innodb_io_capacity & innodb_io_capacity_max-li z parametrů serveru v Azure Portal ke zvýšení využití vstupně-výstupních operací k optimalizaci rychlosti migrace, přejděte na 9000.
  • innodb_write_io_threads & innodb_write_io_threads-li pro zvýšení rychlosti migrace v parametrech serveru v Azure Portal hodnotu 4, změňte hodnotu na 4.
  • horizontální navýšení úrovně Storage – IOPs pro Azure Database for MySQL server se postupně zvyšují s nárůstem úrovně úložiště. V případě rychlejšího načítání možná budete chtít zvýšit úroveň úložiště a zvýšit tak zřízenou vstupně-výstupní operace. Mějte na paměti, že úložiště lze škálovat pouze nahoru, ne dolů.

Po dokončení migrace můžete vrátit zpět parametry serveru a konfiguraci výpočetních vrstev 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 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]

K dispozici jsou následující parametry:

  • [uname] Uživatelské jméno databáze
  • dána Heslo pro vaši databázi (Všimněte si, že mezi-p a heslem není žádné místo)
  • dbname Název vaší databáze
  • [souborzálohy. SQL] název souboru pro zálohování 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 dumpingové tabulky, zobrazit zobrazení pro dumpingové pohledy, aktivovat pro dumpingové triggery a UZAMKNOUT tabulky, pokud není použita možnost--Single-Transaction.

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

Nyní spusťte mysqldump k vytvoření zálohy databáze. testdb

$ mysqldump -u root -p testdb > testdb_backup.sql

Chcete-li vybrat konkrétní tabulky v databázi pro zálohování, uveďte názvy tabulek oddělené mezerami. Chcete-li například zálohovat pouze tabulky Tabulka1 a Tabulka2 z ' TestDB ', postupujte podle následujícího příkladu:

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

Chcete-li zálohovat více než jednu databázi najednou, použijte přepínač--Database 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 nebo MySQL Workbench

Po vytvoření cílové databáze můžete pomocí příkazu MySQL nebo MySQL Workbench obnovit data do konkrétní nově vytvořené databáze ze souboru s výpisem 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 na cílovém serveru Azure Database for MySQL.

Tady je příklad, jak použít tento MySQL pro jeden server :

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

Tady je příklad, jak použít tento MySQL pro flexibilní Server :

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

Výpis a obnovení pomocí PHPMyAdmin

Pomocí těchto kroků vypíšete a obnovíte databázi pomocí PHPMyadmin.

Poznámka

V případě jednoho serveru musí být uživatelské jméno v tomto formátu, ' username@servername ', ale pro flexibilní Server můžete použít ' ' username ', pokud použijete ' username@servername ' pro flexibilní Server, připojení se nezdaří.

Export pomocí PHPMyadmin

K exportu můžete použít nástroj Common Tool phpMyAdmin, který jste už možná nainstalovali místně ve vašem prostředí. Export databáze MySQL pomocí PHPMyAdmin:

  1. Otevřete phpMyAdmin.
  2. Vyberte svou databázi. V seznamu na levé straně klikněte na název databáze.
  3. Klikněte na odkaz exportovat . Zobrazí se nová stránka pro zobrazení výpisu databáze.
  4. V oblasti exportovat klikněte na odkaz Vybrat vše a vyberte tabulky v databázi.
  5. v oblasti možnosti SQL klikněte na příslušné možnosti.
  6. Klikněte na možnost Uložit jako soubor a odpovídající možnost komprese a potom klikněte na tlačítko Přejít . Zobrazí se dialogové okno s výzvou, abyste soubor uložili místně.

Import pomocí PHPMyAdmin

Import databáze je podobný exportu. Proveďte následující akce:

  1. Otevřete phpMyAdmin.
  2. Na stránce instalace phpMyAdmin klikněte na Přidat a přidejte server Azure Database for MySQL. Zadejte podrobnosti připojení a přihlašovací informace.
  3. Vytvořte odpovídající pojmenovanou databázi a vyberte ji na levé straně obrazovky. Chcete-li přepsat existující databázi, klikněte na název databáze, zaškrtněte políčka vedle názvů tabulek a Vyberte možnost Odstranit pro odstranění existujících tabulek.
  4. kliknutím na odkaz SQL zobrazíte stránku, na které můžete zadat SQL příkazy, nebo nahrát soubor SQL.
  5. K vyhledání databázového souboru použijte tlačítko Procházet .
  6. kliknutím na tlačítko přejít exportujte zálohu, spusťte příkazy SQL a znovu vytvořte databázi.

Známé problémy

V případě známých problémů, tipů a triky vám doporučujeme podívat se na náš blog techcommunity.

Další kroky