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 PHPMyAdmin 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.
Mielőtt elkezdené
Az útmutató végigvezetéséhez a következőkre van szüksége:
- Rugalmas Azure Database for MySQL-kiszolgálópéldány – Azure Portal
- a gépre telepített mysqldump parancssori segédprogram.
- A MySQL Workbench vagy egy másik külső MySQL-eszköz a memóriakép- és visszaállítási parancsok végrehajtásához.
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.
Alternatív tárolómotorokról 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átummá, 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 migrálást kísérel meg egy rugalmas Azure Database for MySQL-kiszolgálópéldányba.
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. Asingle-transaction
lehetőség és a lehetőség kölcsönösen kizáróak, mert alock-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 asingle-transaction
beállítást aquick
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ó célpéldányán
Hozzon létre egy üres adatbázist a rugalmas Azure Database for MySQL-kiszolgáló célpéldányán, 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 .
Adja hozzá a kapcsolati adatokat a MySQL Workbenchhez.
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ésre 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 kapacitásának 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 egy fájl testdb_backup.sql, használja az alábbi parancsot. A parancs biztonsági másolatot készít az testdb
adatbázisról egy úgynevezett testdb_backup.sql
fá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 SELECT jogosultsággal a dömpingelt táblákhoz, a megjelenítési nézet a dömpingelt nézetekhez, trigger a dömpingelt triggerekhez és a 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 az újonnan létrehozott adatbázisba a rugalmas Azure Database for MySQL-kiszolgáló célpéldányán.
Í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
Feljegyzés
A MySQL Workbench ügyfél segédprogrammal is visszaállíthatja a MySQL-adatbázist.
Memóriakép és visszaállítás a PHPMyAdmin használatával
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.
Feljegyzé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 phpMyAdmin gyakori eszközét, amelyet lehet, hogy már telepített helyileg a környezetében. MySQL-adatbázis exportálása PHPMyAdmin használatával:
- Nyissa meg a phpMyAdmint.
- Válassza ki az adatbázist. Válassza ki az adatbázis nevét a bal oldali listában.
- Válassza az Exportálás hivatkozást. Megjelenik egy új oldal az adatbáziskép megtekintéséhez.
- 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.
- Az SQL-beállítások területen válassza ki a megfelelő beállításokat.
- 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 PHPMyAdmin használatával
Az adatbázis importálása hasonló az exportáláshoz. Hajtsa végre a következő műveleteket:
- Nyissa meg a phpMyAdmint.
- A phpMyAdmin beállítási lapján 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.
- 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 .
- Az SQL-hivatkozásra kattintva megjelenítheti azt a lapot, ahová beírhatja az SQL-parancsokat, vagy feltöltheti az SQL-fájlt.
- A tallózás gombbal keresse meg az adatbázisfájlt.
- 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.
Következő lépések
- Alkalmazások csatlakoztatása rugalmas Azure Database for MySQL-kiszolgálóhoz.
- Az adatbázisok rugalmas Azure Database for MySQL-kiszolgálóra való migrálásával kapcsolatos további információkért tekintse meg az adatbázis-migrálási útmutatót.
- Ha 1 TB-nál nagyobb adatbázisméretű nagymé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.