Adatok replikálása a rugalmas Azure Database for MySQL-kiszolgálóba
A következőkre vonatkozik: Azure Database for MySQL – rugalmas kiszolgáló
A data-in replikáció lehetővé teszi az adatok szinkronizálását egy külső MySQL-kiszolgálóról egy rugalmas Azure Database for MySQL-kiszolgálópéldányba. A külső kiszolgáló lehet helyszíni, virtuális gépeken, önálló Azure Database for MySQL-kiszolgálón vagy más felhőszolgáltatók által üzemeltetett adatbázis-szolgáltatásban. Az adatbetöltési replikáció a bináris napló (binlog) fájlpozícióján vagy GTID-alapú replikáción alapul. A binlog-replikációval kapcsolatos további információkért tekintse meg a MySQL-replikációt.
Feljegyzés
A magas rendelkezésre állású kiszolgálók adatbeosztásának konfigurálása csak GTID-alapú replikációval támogatott.
Mikor érdemes a data-in replikációt használni?
A data-in replikáció használatának fő forgatókönyvei a következők:
- Hibrid adatszinkronizálás hronizálás: A data-in replikációval szinkronizálhatja az adatokat a helyszíni kiszolgálók és a rugalmas Azure Database for MySQL-kiszolgáló között. Ez a szinkronizálás segít a hibrid alkalmazások létrehozásában. Ez a módszer akkor vonzó, ha már rendelkezik helyi adatbázis-kiszolgálóval, de az adatokat egy olyan régióba szeretné áthelyezni, amely közelebb van a végfelhasználókhoz.
- Többfelhős szinkronizálás: Összetett felhőmegoldások esetén a Data-in replikációval szinkronizálhatja az adatokat a rugalmas Azure Database for MySQL-kiszolgáló és a különböző felhőszolgáltatók között, beleértve az ezekben a felhőkben üzemeltetett virtuális gépeket és adatbázis-szolgáltatásokat.
- Migrálás: Az ügyfelek minimális idő alatt migrálhatnak olyan nyílt forráskódú eszközökkel, mint például a MyDumper/MyLoader adatbetöltési replikációval. Az éles terhelés szelektív átállása a forrásból a céladatbázisba a data-in replikációval lehetséges.
Migrálási forgatókönyvek esetén használja az Azure Database Migration Service(DMS) szolgáltatást.
Korlátozások és szempontok
Nem replikált adatok
A forráskiszolgálón lévő mysql rendszeradatbázis nincs replikálva. Emellett a forráskiszolgálón lévő fiókok és engedélyek módosításai nem replikálódnak. Ha létrehoz egy fiókot a forráskiszolgálón, és ennek a fióknak hozzá kell férnie a replikakiszolgálóhoz, manuálisan hozza létre ugyanazt a fiókot a replikakiszolgálón. A rendszeradatbázis tábláinak megismeréséhez tekintse meg a MySQL-kézikönyvet.
Az adatreplikálás támogatott a magas rendelkezésre állású (HA) kompatibilis kiszolgálókon
A magas rendelkezésre állású (HA) kiszolgáló adatreplikációs támogatása csak GTID-alapú replikációval érhető el.
A GTID-t használó replikáció tárolt eljárása az összes HA-kompatibilis kiszolgálón elérhető a név mysql.az_replication_change_master_with_gtid
alapján.
Szűrő
A paraméter replicate_wild_ignore_table
replikációs szűrőt hoz létre a replikakiszolgáló tábláihoz. Ha módosítani szeretné ezt a paramétert az Azure Portalról, keresse meg a replikaként használt rugalmas Azure Database for MySQL-kiszolgálópéldányt, és válassza a "Kiszolgálóparaméterek" lehetőséget a replicate_wild_ignore_table
paraméter megtekintéséhez/szerkesztéséhez.
Követelmények
A forráskiszolgáló verziójának legalább a MySQL 5.7-es verziójának kell lennie.
Azt javasoljuk, hogy ugyanazzal a verzióval rendelkezzen a forrás- és replikakiszolgálókhoz. Mindkettőnek például a MySQL 5.7-es verziójának kell lennie, vagy mindkettőnek a MySQL 8.0-s verziójának kell lennie.
Azt javasoljuk, hogy minden táblában legyen egy elsődleges kulcs. Ha egy elsődleges kulcs nélküli táblánk van, a replikáció lassúságára lehet szükség.
A forráskiszolgálónak a MySQL InnoDB motort kell használnia.
A felhasználónak rendelkeznie kell a megfelelő engedélyekkel a bináris naplózás konfigurálásához és új felhasználók létrehozásához a forráskiszolgálón.
A forráskiszolgálón lévő bináris naplófájlokat nem szabad kiüríteni, mielőtt a replika alkalmazza ezeket a módosításokat. Ha a forrás rugalmas Azure Database for MySQL-kiszolgáló, tekintse meg, hogyan konfigurálhat binlog_expire_logs_seconds rugalmas kiszolgálóhoz vagy önálló kiszolgálóhoz
Ha a forráskiszolgáló ssl-kompatibilis, győződjön meg arról, hogy a tartományhoz megadott SSL-hitelesítésszolgáltatói tanúsítvány szerepel a
mysql.az_replication_change_master
tárolt eljárásban. Tekintse meg az alábbi példákat és a paramétertmaster_ssl_ca
.Győződjön meg arról, hogy a forráskiszolgálót üzemeltető gép engedélyezi a bejövő és a kimenő forgalmat a 3306-os porton.
Nyilvános hozzáféréssel győződjön meg arról, hogy a forráskiszolgáló nyilvános IP-címmel rendelkezik, a DNS nyilvánosan elérhető, vagy hogy a forráskiszolgáló teljes tartománynévvel (FQDN) rendelkezik. Ha privát végponttal rendelkezik, és letiltotta a nyilvános hozzáférést, az adatreplikálás nem támogatott
Privát hozzáféréssel (VNet-integrációval) győződjön meg arról, hogy a forráskiszolgáló neve feloldható, és elérhető azon a virtuális hálózaton, amelyen a rugalmas Azure Database for MySQL-kiszolgálópéldány fut. (További részletekért látogasson el a Névfeloldás azure-beli virtuális hálózatok erőforrásaihoz).
Generált láthatatlan elsődleges kulcs
A MySQL 8.0-s vagy újabb verziója esetén a generált láthatatlan elsődleges kulcsok (GIPK) alapértelmezés szerint engedélyezve lesznek az összes rugalmas Azure Database for MySQL-kiszolgálópéldány esetében. A MySQL 8.0+-kiszolgálók hozzáadják a láthatatlan my_row_id oszlopot a táblákhoz és egy elsődleges kulcsot azon az oszlopon, ahol az InnoDB-tábla explicit elsődleges kulcs nélkül jön létre. Ez a funkció, ha engedélyezve van, hatással lehet néhány adatreplikációs használati esetre az alábbiak szerint:
Az adatreplikálás a következő replikációs hibával meghiúsul: "HIBA 1068 (42000): Több elsődleges kulcs definiálva", ha a forráskiszolgáló elsődleges kulcsot hoz létre a táblában elsődleges kulcs nélkül. A kockázatcsökkentéshez futtassa a következő SQL-parancsot, hagyja ki a replikációs hibát, és indítsa újra az adat-in replikációt.
alter table <table name> drop column my_row_id, add primary key <primary key name>(<column name>);
Az adatreplikálás a következő replikációs hibával meghiúsul: "1075-ös HIBA (42000): Helytelen tábladefiníció; csak egy automatikus oszlop lehet, és kulcsként kell definiálni, ha a forráskiszolgáló egy auto_increment oszlopot ad hozzá egyedi kulcsként. A kockázatcsökkentéshez futtassa a következő SQL-parancsot, állítsa be a "sql_generate_invisible_primary_key" értéket KI értékre, hagyja ki a replikációs hibát, és indítsa újra az adatreplikációs adatokat.
alter table <table name> drop column my_row_id, modify <column name> int auto_increment;
Az adatreplikálás meghiúsul, ha a forráskiszolgáló olyan SQL-t futtat, amely nem támogatott, ha a "sql_generate_invisible_primary_key" be van kapcsolva. Hozzon létre például egy partíciótáblát. Ilyen esetben a kockázatcsökkentés a "sql_generate_invisible_primary_key" beállítás kikapcsolva értékre van állítva, és újraindítja az adatreplikációs adatokat.
Következő lépések
- További információ az adatreplikálás beállításáról
- További információ az Azure-beli replikálásról olvasási replikákkal