Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Feljegyzés
Ebben a cikkben szerepel a slave (alárendelt) kifejezés, amelyet a Microsoft már nem használ. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.
A MySQL-adatbázisok rugalmas Azure Database for MySQL-kiszolgálóra való migrálásához használhat olyan módszereket, mint a MySQL-memóriakép és -visszaállítás, a MySQL Workbench Exportálás és importálás vagy az Azure Database Migration Service. A számítási feladatokat minimális állásidővel migrálhatja olyan nyílt forráskódú eszközökkel, mint a mysqldump, a mydumper és a myloader a Data-in Replikációval.
Az adatbetöltési replikáció egy olyan technika, amely a bináris naplófájlok helymeghatározási módszere alapján replikálja a forráskiszolgálóról a célkiszolgálóra az adatváltozásokat. Ebben a forgatókönyvben a forrásként működő MySQL-példány (amelyről az adatbázis módosul) a bináris naplóba eseményekként írja a frissítéseket és a módosításokat. A bináris napló információi a rögzített adatbázis-módosításoknak megfelelően különböző naplózási formátumokban lesznek tárolva. A replikák úgy vannak konfigurálva, hogy beolvassák a bináris naplót a forrásból, és végrehajtsák az eseményeket a bináris naplóban a replika helyi adatbázisában.
Állítsa be az Adatok replikálása az Azure Database for MySQL-be – rugalmas kiszolgálóra az adatok forrás MySQL-kiszolgálóról egy cél MySQL-kiszolgálóra való szinkronizálásához. Az alkalmazások szelektív átállását az elsődleges (vagy a forrásadatbázis) és a replika (vagy a céladatbázis) között végezheti el.
Ebben az oktatóanyagban megtudhatja, hogyan állíthat be adatreplikációt a MySQL-hez készült Amazon Relational Database Service -t (RDS) futtató forráskiszolgáló és egy rugalmas Azure Database for MySQL-kiszolgálót futtató célkiszolgáló között.
A teljesítménnyel kapcsolatos megfontolások
Az oktatóanyag megkezdése előtt vegye figyelembe a művelet végrehajtásához használni kívánt ügyfélszámítógép helyének és kapacitásának teljesítménybeli következményeit.
Ügyfél helye
Memóriakép- vagy visszaállítási műveleteket hajthat végre egy olyan ügyfélszámítógépről, amely az adatbázis-kiszolgálóval azonos helyen van elindítva:
- Rugalmas Azure Database for MySQL-kiszolgálópéldányok esetén az ügyfélszámítógépnek ugyanabban a virtuális hálózatban és rendelkezésre állási zónában kell lennie, mint a céladatbázis-kiszolgáló.
- A forrás Amazon RDS-adatbázispéldányok esetében az ügyfélpéldánynak ugyanabban az Amazon virtuális magánfelhőben és rendelkezésre állási zónában kell lennie, mint a forrásadatbázis-kiszolgálónak. Az előző esetben áthelyezheti a memóriaképfájlokat az ügyfélgépek között fájlátviteli protokollok, például FTP vagy SFTP használatával, vagy feltöltheti őket az Azure Blob Storage-ba. A teljes áttelepítési idő csökkentése érdekében tömörítse a fájlokat az átvitel előtt.
Ügyfélkapacitás
Függetlenül attól, hogy az ügyfélszámítógép hol található, a kért műveletek elvégzéséhez megfelelő számítástechnikai, I/O- és hálózati kapacitásra van szükség. Az általános javaslatok a következők:
- Ha a memóriakép vagy visszaállítás az adatok valós idejű feldolgozását, például tömörítést vagy tömörítést igényel, válasszon ki egy példányosztályt, amely memóriaképenként vagy visszaállítási szálonként legalább egy processzormaggal rendelkezik.
- Győződjön meg arról, hogy elegendő hálózati sávszélesség áll rendelkezésre az ügyfélpéldány számára. A gyorsított hálózatkezelési funkciót támogató példánytípusok használata. További információ: "Gyorsított hálózatkezelés" szakasz az Azure-beli virtuális gépek hálózatkezelési útmutatójában.
- Győződjön meg arról, hogy az ügyfélszámítógép tárolási rétege biztosítja a várt olvasási/írási kapacitást. Javasoljuk, hogy prémium SSD-tárterülettel rendelkező Azure-beli virtuális gépet használjon.
Előfeltételek
Az oktatóanyag elvégzéséhez a következőkre lesz szüksége:
Telepítse a mysqlclientet az ügyfélszámítógépre egy memóriakép létrehozásához, és végezzen visszaállítási műveletet a célként megadott rugalmas Azure Database for MySQL-kiszolgálópéldányon.
Nagyobb adatbázisok esetén telepítse a mydumpert és a myloadert az adatbázisok párhuzamos memóriaképezéséhez és visszaállításához.
Feljegyzés
A Mydumper csak Linux-disztribúciókon futtatható. További információ: A mydumper telepítése.
Hozzon létre egy rugalmas Azure Database for MySQL-kiszolgálót, amely az 5.7-es vagy a 8.0-s verziót futtatja.
Fontos
Ha a cél a rugalmas Azure Database for MySQL-kiszolgáló zónaredundáns magas rendelkezésre állással (HA), vegye figyelembe, hogy a data-in replikáció ebben a konfigurációban nem támogatott. Megkerülő megoldásként a kiszolgáló létrehozása során állítsa be a zónaredundáns HA-t:
- Hozza létre a kiszolgálót zónaredundáns ha engedélyezve.
- Tiltsa le a HA-t.
- Kövesse a cikket a data-in replikáció beállításához.
- Az átállás után távolítsa el a data-in replikációs konfigurációt.
- Engedélyezze a HA-t.
Győződjön meg arról, hogy számos paraméter és szolgáltatás megfelelően van konfigurálva és konfigurálva az alábbiak szerint:
- Kompatibilitási okokból a forrás- és céladatbázis-kiszolgálók ugyanazon a MySQL-verzión találhatók.
- Minden táblában legyen egy elsődleges kulcs. A táblák elsődleges kulcsainak hiánya lelassíthatja a replikációs folyamatot.
- Győződjön meg arról, hogy a forrás és a céladatbázis karakterkészlete megegyezik.
- Állítsa be a
wait_timeoutparamétert ésszerű időre. Az idő az importálni vagy migrálni kívánt adatok vagy számítási feladatok mennyiségétől függ. - Ellenőrizze, hogy az összes tábla innoDB-t használ-e. A rugalmas Azure Database for MySQL-kiszolgáló csak az InnoDB-tárolómotort támogatja.
- A sok másodlagos indexet vagy nagy táblázatot tartalmazó táblák esetében a visszaállítás során a teljesítményterhelési hatások láthatók. Módosítsa a memóriaképfájlokat, hogy az
CREATE TABLEutasítások ne tartalmazzanak másodlagos kulcsdefiníciókat. Az adatok importálása után hozzon létre újra másodlagos indexeket a visszaállítási folyamat teljesítménybeli büntetésének elkerülése érdekében.
Végül a data-in replikációra való felkészüléshez:
- Ellenőrizze, hogy a cél Azure Database for MySQL-kiszolgálópéldány képes-e csatlakozni a forrás Amazon RDS for MySQL-kiszolgálóhoz a 3306-os porton keresztül.
- Győződjön meg arról, hogy a forrás Amazon RDS for MySQL-kiszolgáló engedélyezi a bejövő és a kimenő forgalmat a 3306-os porton.
- Győződjön meg arról, hogy helyek közötti kapcsolatot biztosít a forráskiszolgálóhoz az Azure ExpressRoute vagy az Azure VPN Gateway használatával. A virtuális hálózat létrehozásával kapcsolatos további információkért tekintse meg az Azure Virtual Network dokumentációját. Tekintse meg a rövid útmutatókat, amelyek részletes információkat is tartalmaznak.
- Konfigurálja a forrásadatbázis-kiszolgáló hálózati biztonsági csoportjait a rugalmas Azure Database for MySQL-kiszolgáló IP-címének engedélyezéséhez.
Fontos
Ha a forrás Amazon RDS for MySQL-példány GTID_mode ON értékre van állítva, akkor a rugalmas Azure Database for MySQL-kiszolgáló célpéldányának is be kell GTID_mode állítania.
Az Azure Database for MySQL célpéldányának konfigurálása
A rugalmas Azure Database for MySQL-kiszolgáló célpéldányának konfigurálása, amely a data-in replikáció célpéldánya:
Állítsa a
max_allowed_packetparaméter értékét az 1 GB-os 1073741824 maximális értékre. Ez az érték megakadályozza a hosszú sorokkal kapcsolatos túlcsordulási problémákat.Állítsa a
slow_query_log,general_log, ,audit_log_enabledésquery_store_capture_modeparamétereket KI értékre a migrálás során, hogy kiküszöbölje a lekérdezésnaplózással kapcsolatos többletterhelést.Skálázza fel a rugalmas Azure Database for MySQL-kiszolgáló célpéldányának számítási méretét legfeljebb 64 virtuális magra. Ez a méret több számítási erőforrást biztosít a forráskiszolgáló adatbázis-memóriaképének visszaállításakor.
A migrálás befejezése után bármikor visszaskálázhatja a számítást, hogy megfeleljen az alkalmazás igényeinek.
Skálázza fel a tárterület méretét, hogy több IOPS-t kapjon az áttelepítés során, vagy növelje az áttelepítés maximális IOPS-értékét.
Feljegyzés
A rendelkezésre álló maximális IOPS-t a számítási méret határozza meg. További információ: A rugalmas Azure Database for MySQL-kiszolgáló számítási és tárolási lehetőségeinek IOPS-szakasza.
A forrás Amazon RDS for MySQL-kiszolgáló konfigurálása
Az Amazon RDS-ben üzemeltetett MySQL-kiszolgáló előkészítése és konfigurálása, amely a data-in replikáció forrása :
Győződjön meg arról, hogy a bináris naplózás engedélyezve van a forrás Amazon RDS for MySQL-kiszolgálón. Ellenőrizze, hogy engedélyezve vannak-e az automatikus biztonsági mentések, vagy hogy létezik-e olvasási replika a forrás Amazon RDS for MySQL-kiszolgálóhoz.
Győződjön meg arról, hogy a bináris naplófájlok a forráskiszolgálón mindaddig megmaradnak, amíg a módosítások a rugalmas Azure Database for MySQL-kiszolgáló célpéldányán nem lesznek alkalmazva.
A data-in replikációval a rugalmas Azure Database for MySQL-kiszolgáló nem kezeli a replikációs folyamatot.
Ha ellenőrizni szeretné a bináris naplók megőrzését a forrás Amazon RDS-kiszolgálón a bináris naplók megőrzésének időtartamának meghatározásához, hívja meg a
mysql.rds_show_configurationtárolt eljárást:call mysql.rds_show_configuration; +------------------------+-------+-----------------------------------------------------------------------------------------------------------+ | name | value | description | | +------------------------+-------+-----------------------------------------------------------------------------------------------------------+ | | binlog retention hours | 24 | binlog retention hours specifies the duration in hours before binary logs are automatically deleted. | | source delay | 0 | source delay specifies replication delay in seconds between current instance and its master. | | target delay | 0 | target delay specifies replication delay in seconds between current instance and its future read-replica. | | +------------------------+------- +-----------------------------------------------------------------------------------------------------------+ | | 3 rows in set (0.00 sec) |A bináris naplók megőrzési idejének konfigurálásához futtassa a
rds_set_configurationtárolt eljárást, hogy a bináris naplók a kívánt ideig megmaradjanak a forráskiszolgálón. Példa:Call mysql.rds_set_configuration('binlog retention hours', 96);Ha memóriaképet hoz létre és állít vissza, az előző parancs segítségével gyorsan utolérheti a változásváltozásokat.
Feljegyzés
Győződjön meg arról, hogy elegendő lemezterületet biztosít a bináris naplók forráskiszolgálón való tárolásához a megadott megőrzési idő alapján.
A forrás Amazon RDS for MySQL-kiszolgálóról kétféleképpen rögzíthet adatképet. Az egyik módszer az adatok memóriaképének rögzítése közvetlenül a forráskiszolgálóról. A másik megközelítés magában foglalja egy memóriakép rögzítését egy Amazon RDS for MySQL olvasási replikából.
Adatok memóriaképének rögzítése közvetlenül a forráskiszolgálóról:
Győződjön meg arról, hogy néhány percre leállítja az írásokat az alkalmazásból, hogy tranzakciósan konzisztens adatképet kapjon.
A paramétert ideiglenesen 1 értékre is beállíthatja
read_only, hogy az írások ne dolgozzanak fel adatképek rögzítésekor.Miután leállítja az írásokat a forráskiszolgálón, gyűjtse össze a bináris naplófájl nevét, majd a parancs
Mysql> Show master status;futtatásával eltolást.Mentse ezeket az értékeket a rugalmas Azure Database for MySQL-kiszolgálópéldány replikációjának elindításához.
Az adatok memóriaképének létrehozásához hajtsa végre
mysqldumpa következő parancs futtatásával:$ mysqldump -h hostname -u username -p –single-transaction –databases dbnames –order-by-primary> dumpname.sql
Ha az írások leállítása nem lehetséges a forráskiszolgálón, vagy a memóriaképek teljesítménye nem elfogadható a forráskiszolgálón, rögzítsen egy memóriaképet egy replikakiszolgálón:
Hozzon létre egy Amazon MySQL olvasási replikát a forráskiszolgálóval megegyező konfigurációval. Ezután hozza létre a memóriaképet.
Az Amazon RDS for MySQL olvasási replika felzárkózhat a forrás Amazon RDS for MySQL-kiszolgálóhoz.
Amikor a replika késése eléri a 0 értéket az olvasási replikán, állítsa le a replikációt a tárolt eljárás
mysql.rds_stop_replicationmeghívásával.call mysql.rds_stop_replication;A replikáció leállítása után csatlakozzon a replikához. Ezután futtassa a
SHOW SLAVE STATUSparancsot az aktuális bináris naplófájl nevének lekéréséhez a Relay_Master_Log_File mezőből és a naplófájl pozíciójából a Exec_Master_Log_Pos mezőből.Mentse ezeket az értékeket a rugalmas Azure Database for MySQL-kiszolgálópéldány replikációjának elindításához.
Az Amazon RDS for MySQL olvasási replika adatainak memóriaképének létrehozásához hajtsa végre
mysqldumpa következő parancs futtatásával:$ mysqldump -h hostname -u username -p –single-transaction –databases dbnames –order-by-primary> dumpname.sql
Feljegyzés
Használhatja a mydumpert is az adatok párhuzamos memóriaképének rögzítéséhez a forrás Amazon RDS for MySQL-adatbázisból. További információ: Nagyméretű adatbázisok migrálása rugalmas Azure Database for MySQL-kiszolgálóra mydumper/myloader használatával.
Forrás- és replikakiszolgálók összekapcsolása a data-in replikáció elindításához
Ha natív mysql-visszaállítással szeretné visszaállítani az adatbázist, futtassa a következő parancsot:
$ mysql -h <target_server> -u <targetuser> -p < dumpname.sqlFeljegyzés
Ha inkább a myloadert használja, olvassa el a nagyméretű adatbázisok migrálása rugalmas Azure Database for MySQL-kiszolgálóra a mydumper/myloader használatával című témakört.
Jelentkezzen be a forrás Amazon RDS for MySQL-kiszolgálóra, és állítson be egy replikációs felhasználót. Ezután adja meg a szükséges jogosultságokat ennek a felhasználónak.
SSL használata esetén futtassa a következő parancsokat:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'userpassword'; GRANT REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'syncuser'@'%' REQUIRE SSL; SHOW GRANTS FOR syncuser@'%';Ha nem SSL-t használ, futtassa a következő parancsokat:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'userpassword'; GRANT REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'syncuser'@'%'; SHOW GRANTS FOR syncuser@'%';
A tárolt eljárások az összes adat-in replikációs függvényt hajtják végre. Az összes eljárásról további információt a tárolt adatreplikációs eljárásokban talál. Ezeket a tárolt eljárásokat a MySQL-rendszerhéjban vagy a MySQL Workbenchben futtathatja.
Az Amazon RDS for MySQL forráskiszolgáló és a rugalmas Azure Database for MySQL-kiszolgáló célkiszolgálójának összekapcsolásához jelentkezzen be a rugalmas Azure Database for MySQL-kiszolgáló célpéldányára. Állítsa be az Amazon RDS for MySQL-kiszolgálót forráskiszolgálóként az alábbi parancs futtatásával:
CALL mysql.az_replication_change_master('source_server','replication_user_name','replication_user_password',3306,'<master_bin_log_file>',master_bin_log_position,'<master_ssl_ca>');A forrás Amazon RDS for MySQL-kiszolgáló és a rugalmas Azure Database for MySQL-kiszolgálópéldány közötti replikáció elindításához futtassa a következő parancsot:
CALL mysql.az_replication_start;A replikáció állapotának a replikakiszolgálón való ellenőrzéséhez futtassa a következő parancsot:
show slave status\GHa a
Slave_IO_Runningparaméterek állapotaSlave_SQL_RunningIgen, a replikáció elindult, és futó állapotban van.Ellenőrizze a paraméter értékét a
Seconds_Behind_Mastercélkiszolgáló késésének megállapításához.Ha az érték 0, a cél feldolgozta a forráskiszolgáló összes frissítését. Ha az érték nem 0, a célkiszolgáló továbbra is feldolgozja a frissítéseket.
Sikeres átállás biztosítása
A sikeres átállás biztosítása:
- Konfigurálja a megfelelő bejelentkezéseket és adatbázisszintű engedélyeket a rugalmas Azure Database for MySQL-kiszolgáló célpéldányában.
- Leállítja az írást a forrás Amazon RDS for MySQL-kiszolgálóra.
- Győződjön meg arról, hogy a rugalmas Azure Database for MySQL-kiszolgáló célpéldánya felzárkózott a forráskiszolgálóhoz, és hogy az
Seconds_Behind_Masterérték 0 a forráskiszolgálótól.show slave status - Hívja meg a tárolt eljárást
mysql.az_replication_stopa replikáció leállításához, mert minden módosítás replikálva lett a rugalmas Azure Database for MySQL-kiszolgáló célpéldányára. - Hívás
mysql.az_replication_remove_masteraz adatreplikációs konfiguráció eltávolítására. - Átirányíthatja az ügyfeleket és az ügyfélalkalmazásokat a rugalmas Azure Database for MySQL-kiszolgálópéldányra.
Ezen a ponton az áttelepítés befejeződött. Az alkalmazások csatlakoznak a rugalmas Azure Database for MySQL-kiszolgálót futtató kiszolgálóhoz.