MySQL-adatbázis migrálása az Azure Database for MySQL-be – Rugalmas kiszolgáló memóriakép és visszaállítás használatával

A következőkre vonatkozik: Azure Database for MySQL – Egykiszolgálós Azure Database for MySQL – Rugalmas kiszolgáló

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

Ez a cikk két gyakori módszert ismertet az adatbázisok biztonsági mentésére és visszaállítására a rugalmas Azure Database for MySQL-kiszolgálón.

  • Memóriakép és visszaállítás a parancssorból (mysqldump használatával).
  • Memóriakép és visszaállítás PHPMy Rendszergazda használatával.

Az adatbázisok rugalmas Azure Database for MySQL-kiszolgálóra való migrálásával kapcsolatos részletes információkért és használati esetekért tekintse meg az adatbázis-áttelepítési útmutatót . Ez az útmutató útmutatást nyújt az Azure-ba irányuló MySQL-migrálás sikeres megtervezéséhez és végrehajtásához.

Előkészületek

Az útmutató végigvezetéséhez a következőkre van szüksége:

Tipp.

Ha 1 TB-nál nagyobb méretű adatbázisokat szeretne migrálni, érdemes lehet megfontolni az olyan közösségi eszközök használatát, mint a mydumper/myloader , amely támogatja a párhuzamos exportálást és importálást. Ismerje meg , hogyan migrálhat nagyméretű MySQL-adatbázisokat.

A memóriakép és a visszaállítás gyakori használati esetei

A leggyakoribb használati esetek a következők:

  • Áthelyezés más felügyelt szolgáltatóról – A legtöbb felügyelt szolgáltató biztonsági okokból nem biztosít hozzáférést a fizikai tárfájlhoz, ezért a logikai biztonsági mentés és visszaállítás az egyetlen lehetőség a migrálásra.

  • Helyszíni környezetből vagy virtuális gépről való migrálás – A rugalmas Azure Database for MySQL-kiszolgáló nem támogatja a fizikai biztonsági mentések visszaállítását, ami csak a logikai biztonsági mentést és a visszaállítást teszi lehetővé.

  • A biztonsági mentési tároló helyileg redundánsról georedundáns tárolóra való áthelyezése – A rugalmas Azure Database for MySQL-kiszolgáló csak a kiszolgáló létrehozásakor engedélyezi a helyileg redundáns vagy georedundáns tárolás konfigurálását a biztonsági mentéshez. A biztonsági mentési tár redundanciára vonatkozó beállításait a kiszolgáló üzembe helyezése után már nem lehet módosítani. Annak érdekében, hogy a biztonsági mentési tárolót helyileg redundáns tárolóról georedundáns tárolóra helyezze át, a memóriakép és a visszaállítás az EGYETLEN lehetőség.

  • Az alternatív tárolómotorokról az InnoDB-re való migrálás – A rugalmas Azure Database for MySQL-kiszolgáló csak az InnoDB Storage motort támogatja, ezért nem támogatja az alternatív tárolómotorokat. Ha a táblák más tárolómotorokkal vannak konfigurálva, konvertálja őket InnoDB motorformátumra, mielőtt rugalmas Azure Database for MySQL-kiszolgálóra migrál.

    Ha például Egy WordPress vagy WebApp a MyISAM-táblákat használja, először konvertálja ezeket a táblákat innoDB formátumúra, mielőtt visszaállítja a rugalmas Azure Database for MySQL-kiszolgálóra. A záradék ENGINE=InnoDB használatával állítsa be az új tábla létrehozásakor használt motort, majd a visszaállítás előtt vigye át az adatokat a kompatibilis táblába.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    

Fontos

  • A kompatibilitási problémák elkerülése érdekében az adatbázisok biztonsági mentésekor győződjön meg arról, hogy a forrás- és a célrendszerek ugyanazt a MySQL-verziót használják. Ha például a meglévő MySQL-kiszolgáló 5.7-es verziójú, akkor az 5.7-es verzió futtatására konfigurált rugalmas Azure Database for MySQL-kiszolgálópéldányra kell migrálnia. A mysql_upgrade parancs nem működik rugalmas Azure Database for MySQL-kiszolgálópéldányban, és nem támogatott.
  • Ha frissítenie kell a MySQL-verziókra, először memóriaképet kell létrehoznia, vagy exportálnia kell az alacsonyabb verziójú adatbázist a SajátSQL egy magasabb verziójába a saját környezetében. Ezután futtassa, mysql_upgrade mielőtt rugalmas Azure Database for MySQL-kiszolgálópéldányba próbálna migrálást.

A teljesítménnyel kapcsolatos megfontolások

A teljesítmény optimalizálása érdekében vegye figyelembe ezeket a szempontokat a nagyméretű adatbázisok memóriaképekor:

  • Használja a exclude-triggers mysqldump lehetőséget az adatbázisok memóriaképekor. Zárja ki az eseményindítókat a memóriaképfájlokból, hogy az eseményindító parancsok ne induljanak el az adat-visszaállítás során.
  • Ezzel a single-transaction beállítással a tranzakcióelkülönítési módot ISMÉTELHETŐ OLVASÁS értékre állíthatja, és az adatok memóriaképe előtt elküld egy START TRANSACTION SQL-utasítást a kiszolgálónak. Ha egyetlen tranzakción belül sok táblát dob ki, a visszaállítás során némi extra tárterületet kell használnia. A single-transaction lehetőség és a lehetőség kölcsönösen kizáróak, mert a lock-tables LOCK TABLES miatt a függőben lévő tranzakciók implicit módon lesznek véglegesítettek. Nagy táblák memóriaképéhez kombinálja a single-transaction beállítást a quick beállítással.
  • Használja a extended-insert többsoros szintaxist, amely több értéklistát is tartalmaz. Ez kisebb memóriaképfájlt eredményez, és felgyorsítja a beszúrásokat a fájl újratöltésekor.
  • Az adatbázisok memóriaképekor használja a order-by-primary mysqldump lehetőséget, hogy az adatok elsődleges kulcssorrendben lesznek szkriptelve.
  • Az adatok memóriaképekor használja a disable-keys mysqldump lehetőséget az idegen kulcsokra vonatkozó korlátozások letiltásához a betöltés előtt. A külső kulcsok ellenőrzésének letiltása teljesítménynövekedést biztosít. Engedélyezze a korlátozásokat, és ellenőrizze az adatokat a betöltés után a hivatkozási integritás biztosítása érdekében.
  • Szükség esetén használjon particionált táblákat.
  • Adatok betöltése párhuzamosan. Kerülje a túl sok párhuzamosságot, amely miatt erőforráskorlátot érhet el, és az Azure Portalon elérhető metrikák használatával figyelheti az erőforrásokat.
  • Használja a defer-table-indexes mysqldump lehetőséget az adatbázisok memóriaképekor, hogy az index létrehozása a táblák adatainak betöltése után történjen.
  • Másolja a biztonsági mentési fájlokat egy Azure-blobba/tárolóba, és onnan végezze el a visszaállítást, ami sokkal gyorsabb lehet, mint a visszaállítás végrehajtása az interneten keresztül.

Adatbázis létrehozása a rugalmas Azure Database for MySQL-kiszolgálópéldányon

Hozzon létre egy üres adatbázist a rugalmas Azure Database for MySQL-kiszolgálópéldányon, ahol át szeretné telepíteni az adatokat. Az adatbázis létrehozásához használjon olyan eszközt, mint a MySQL Workbench vagy a mysql.exe. Az adatbázis neve megegyezhet a dömpingelt adatokat tartalmazó adatbázis nevével, vagy létrehozhat egy másik nevű adatbázist.

A csatlakozáshoz keresse meg a kapcsolati információkat a rugalmas Azure Database for MySQL-kiszolgálópéldány áttekintésében .

Find the connection information in the Azure portal

Adja hozzá a kapcsolati adatokat a MySQL Workbenchhez.

MySQL Workbench Connection String

Rugalmas Azure Database for MySQL-kiszolgálópéldány előkészítése gyors adatbetöltéshez

A rugalmas Azure Database for MySQL-kiszolgálópéldány gyorsabb adatbetöltéshez való előkészítéséhez módosítani kell a következő kiszolgálóparamétereket és konfigurációt.

  • max_allowed_packet – 1073741824 (azaz 1 GB) értékre van állítva, hogy megakadályozza a hosszú sorok miatti túlcsordulási problémákat.
  • slow_query_log – a lassú lekérdezési napló kikapcsolásához kapcsolja ki a KI értéket. Ez kiküszöböli a lassú lekérdezésnaplózás által okozott terhelést az adatbetöltés során.
  • query_store_capture_mode – a NONE értékre van állítva, hogy kikapcsolja a lekérdezéstárat. Ez kiküszöböli a Lekérdezéstár mintavételezési tevékenységei által okozott többletterhelést.
  • innodb_buffer_pool_size – Skálázza fel a kiszolgálót 32 virtuális magra optimalizált memóriaoptimalizált termékváltozatra a portál tarifacsomagjából a migrálás során a innodb_buffer_pool_size növelése érdekében. Innodb_buffer_pool_size csak a rugalmas Azure Database for MySQL-kiszolgálópéldány számítási skálázásával növelhető.
  • innodb_io_capacity &innodb_io_capacity_max – Váltson 9000-es értékre az Azure Portal kiszolgálóparaméterei közül az IO-kihasználtság javítása érdekében, hogy optimalizálja a migrálási sebességet.
  • innodb_write_io_threads &innodb_write_io_threads – A migrálás sebességének javítása érdekében váltson 4-esre az Azure Portal kiszolgálóparaméterei közül.
  • Tárolási szint vertikális felskálázása – A rugalmas Azure Database for MySQL-kiszolgáló IOP-i fokozatosan növekednek a tárolási szint növekedésével. A gyorsabb terhelés érdekében érdemes lehet növelni a tárolási szintet a kiépített IOP-k növeléséhez. Ne feledje, hogy a tároló csak felskálázható, nem lefelé.

Az áttelepítés befejezése után visszaállíthatja a kiszolgáló paramétereit és a számítási szint konfigurációját a korábbi értékekre.

Memóriakép és visszaállítás a mysqldump segédprogrammal

Biztonsági mentési fájl létrehozása a parancssorból a mysqldump használatával

Ha egy meglévő MySQL-adatbázisról szeretne biztonsági másolatot készíteni a helyi helyszíni kiszolgálón vagy egy virtuális gépen, futtassa a következő parancsot:

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

A megadni kívánt paraméterek a következők:

  • [uname] Az adatbázis felhasználóneve
  • [pass] Az adatbázis jelszava (vegye figyelembe, hogy a -p és a jelszó között nincs szóköz)
  • [dbname] Az adatbázis neve
  • [backupfile.sql] Az adatbázis biztonsági mentésének fájlneve
  • [--opt] A mysqldump lehetőség

Ha például egy "testdb" nevű adatbázisról szeretne biztonsági másolatot készíteni a MySQL-kiszolgálón a "testuser" felhasználónévvel és jelszó nélkül a testdb_backup.sql fájlhoz, használja az alábbi parancsot. A parancs biztonsági másolatot készít az testdb adatbázisról egy úgynevezett testdb_backup.sqlfájlra, amely tartalmazza az adatbázis újbóli létrehozásához szükséges összes SQL-utasítást. Győződjön meg arról, hogy a "testuser" felhasználónév rendelkezik legalább a Standard kiadás LECT jogosultsággal a dömpingelt táblákhoz, megjelenítési nézet a dömpingelt nézetekhez, trigger a dömpingelt eseményindítókhoz és LOCK TABLES, ha a --single-transaction beállítás nincs használatban.

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

Most futtassa a mysqldump parancsot az adatbázis biztonsági mentésének testdb létrehozásához

mysqldump -u root -p testdb > testdb_backup.sql

Ha az adatbázisban meghatározott táblákat szeretne kijelölni a biztonsági mentéshez, listázhatja a táblák nevét szóközök szerint elválasztva. Ha például csak a table1 és table2 táblákról szeretne biztonsági másolatot készíteni a "testdb"-ből, kövesse az alábbi példát:

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

Ha egyszerre több adatbázisról szeretne biztonsági másolatot készíteni, használja a kapcsolót --database , és sorolja fel a szóközök által elválasztott adatbázisneveket.

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

A MySQL-adatbázis visszaállítása parancssor használatával

Miután létrehozta a céladatbázist, a mysql paranccsal visszaállíthatja az adatokat az adott újonnan létrehozott adatbázisba a memóriaképfájlból.

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

Ebben a példában állítsa vissza az adatokat a rugalmas Azure Database for MySQL-kiszolgálópéldány újonnan létrehozott adatbázisába.

Íme egy példa a mysql önálló kiszolgálóhoz való használatára:

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

Íme egy példa a mysql rugalmas kiszolgálóhoz való használatára:

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

Megjegyzés:

A MySQL Workbench ügyfél segédprogrammal is visszaállíthatja a MySQL-adatbázist.

Memóriakép és visszaállítás PHPMy használatával Rendszergazda

Az alábbi lépéseket követve memóriaképet hozhat létre és állíthat vissza egy adatbázist a PHPMyadmin használatával.

Megjegyzés:

Egyetlen kiszolgáló esetén a felhasználónévnek ebben a formátumban kell lennie ( "username@servername"), de rugalmas kiszolgáló esetén a "felhasználónév" csak akkor használható, ha a rugalmas kiszolgálóhoz a "username@servername" kifejezést használja, a kapcsolat sikertelen lesz.

Exportálás PHPMyadminnal

Az exportáláshoz használhatja a phpMy Rendszergazda általános eszközét, amelyet lehet, hogy már telepített helyileg a környezetében. A MySQL-adatbázis PHPMy használatával történő exportálása Rendszergazda:

  1. Nyissa meg a phpMy Rendszergazda.
  2. Válassza ki az adatbázist. Válassza ki az adatbázis nevét a bal oldali listában.
  3. Válassza az Exportálás hivatkozást. Megjelenik egy új oldal az adatbáziskép megtekintéséhez.
  4. Az Exportálás területen válassza az Összes kijelölése hivatkozást az adatbázis tábláinak kiválasztásához.
  5. Az SQL-beállítások területen válassza ki a megfelelő beállításokat.
  6. Válassza a Mentés fájlként lehetőséget és a megfelelő tömörítési lehetőséget, majd kattintson az Ugrás gombra. Ekkor megjelenik egy párbeszédpanel, amely arra kéri, hogy mentse a fájlt helyileg.

Importálás PHPMy használatával Rendszergazda

Az adatbázis importálása hasonló az exportáláshoz. Hajtsa végre a következő műveleteket:

  1. Nyissa meg a phpMy Rendszergazda.
  2. A phpMy Rendszergazda beállítási lapon válassza a Hozzáadás lehetőséget a rugalmas Azure Database for MySQL-kiszolgálópéldány hozzáadásához. Adja meg a kapcsolat részleteit, és jelentkezzen be.
  3. Hozzon létre egy megfelelően elnevezett adatbázist, és válassza ki a képernyő bal oldalán. A meglévő adatbázis újraírásához jelölje ki az adatbázis nevét, jelölje be a táblanevek melletti összes jelölőnégyzetet, majd a Meglévő táblák törléséhez válassza a Drop lehetőséget .
  4. Az SQL-hivatkozásra kattintva megjelenítheti azt a lapot, ahová beírhatja az SQL-parancsokat, vagy feltöltheti az SQL-fájlt.
  5. A tallózás gombbal keresse meg az adatbázisfájlt.
  6. A Go gombra kattintva exportálhatja a biztonsági mentést, végrehajthatja az SQL-parancsokat, és újra létrehozhatja az adatbázist.

Ismert problémák

Az ismert problémák, tippek és trükkök, javasoljuk, hogy tekintse meg a techcommunity blog.

További lépések