A data-in replikáció konfigurálása az Azure Database for MariaDB-ben
Fontos
Az Azure Database for MariaDB a nyugdíjazási útvonalon van. Határozottan javasoljuk, hogy migráljon az Azure Database for MySQL-be. További információ az Azure Database for MySQL-be való migrálásról: Mi történik az Azure Database for MariaDB-vel?
Ez a cikk bemutatja, hogyan állíthatja be a data-in replikációt az Azure Database for MariaDB-ben a forrás- és replikakiszolgálók konfigurálásával. Ez a cikk feltételezi, hogy rendelkezik némi korábbi tapasztalattal a MariaDB-kiszolgálókkal és -adatbázisokkal kapcsolatban.
Ha replikát szeretne létrehozni az Azure Database for MariaDB szolgáltatásban, a Data-in Replication szinkronizálja az adatokat egy forrás MariaDB-kiszolgálóról a helyszínen, virtuális gépeken vagy felhőbeli adatbázis-szolgáltatásokban. A beérkező adatokra épülő replikáció a MariaDB natív bináris naplójának (binlog) fájlpozíció-alapú replikációján alapul. A binlog replikációval kapcsolatos további információkért tekintse meg a binlog replikációjának áttekintését.
A cikk lépéseinek végrehajtása előtt tekintse át a data-in replikáció korlátait és követelményeit .
Megjegyzés:
Ha a forráskiszolgáló 10.2-es vagy újabb verziójú, javasoljuk, hogy globális tranzakcióazonosítóval állítsa be a data-in replikációt.
Megjegyzés:
This article contains references to the term slave, a term that Microsoft no longer uses. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.
MariaDB-kiszolgáló létrehozása replikaként való használatra
Hozzon létre egy új Azure Database for MariaDB-kiszolgálót (például replica.mariadb.database.azure.com). A kiszolgáló a replikakiszolgáló a data-in replikációban.
A kiszolgálólétrehozásról további információt az Azure Database for MariaDB-kiszolgáló létrehozása az Azure Portal használatával című témakörben talál.
Fontos
Az Azure Database for MariaDB-kiszolgálót az általános célú vagy memóriaoptimalizált tarifacsomagokban kell létrehoznia.
Azonos felhasználói fiókok és megfelelő jogosultságok létrehozása.
A felhasználói fiókok nem replikálódnak a forráskiszolgálóról a replikakiszolgálóra. A replikakiszolgálóhoz való felhasználói hozzáférés biztosításához manuálisan kell létrehoznia az újonnan létrehozott Azure Database for MariaDB-kiszolgálón található összes fiókot és megfelelő jogosultságot.
Adja hozzá a forráskiszolgáló IP-címét a replika tűzfalszabályaihoz.
A tűzfalszabályokat az Azure Portallal vagy az Azure CLI-vel frissítheti.
A forráskiszolgáló konfigurálása
Az alábbi lépések előkészítik és konfigurálják a helyszíni, virtuális gépen vagy felhőbeli adatbázis-szolgáltatásban üzemeltetett MariaDB-kiszolgálót a data-in replikációhoz. A MariaDB-kiszolgáló a adatforrás a data-in replikációban.
A folytatás előtt tekintse át az elsődleges kiszolgáló követelményeit .
Győződjön meg arról, hogy a forráskiszolgáló engedélyezi a bejövő és kimenő forgalmat a 3306-os porton, és hogy a forráskiszolgáló nyilvános IP-címmel rendelkezik, a DNS nyilvánosan elérhető, vagy teljes tartománynévvel (FQDN) rendelkezik.
Tesztelje a forráskiszolgálóval való kapcsolatot úgy, hogy megpróbál csatlakozni egy másik gépen üzemeltetett MySQL-parancssorból vagy az Azure Portalon elérhető Azure Cloud Shellből .
Ha a szervezet szigorú biztonsági szabályzatokkal rendelkezik, és nem engedélyezi a forráskiszolgálón lévő összes IP-cím számára az Azure-ból a forráskiszolgálóval való kommunikációt, az alábbi paranccsal meghatározhatja az Azure Database for MariaDB-kiszolgáló IP-címét.
Jelentkezzen be az Azure Database for MariaDB-be egy olyan eszközzel, mint a MySQL parancssor.
Hajtsa végre az alábbi lekérdezést.
SELECT @@global.redirect_server_host;
Az alábbiakban néhány mintakimenet látható:
+-----------------------------------------------------------+ | @@global.redirect_server_host | +-----------------------------------------------------------+ | e299ae56f000.tr1830.westus1-a.worker.database.windows.net | +-----------------------------------------------------------+
Lépjen ki a MySQL parancssorból.
Hajtsa végre az alábbi pingelési segédprogramot az IP-cím lekéréséhez.
ping <output of step 2b>
Például:
C:\Users\testuser> ping e299ae56f000.tr1830.westus1-a.worker.database.windows.net Pinging tr1830.westus1-a.worker.database.windows.net (**11.11.111.111**) 56(84) bytes of data.
Konfigurálja a forráskiszolgáló tűzfalszabályait úgy, hogy az tartalmazza az előző lépés kimeneti IP-címét a 3306-os porton.
Megjegyzés:
Ez az IP-cím karbantartási/üzembe helyezési műveletek miatt változhat. Ez a kapcsolati módszer csak azoknak az ügyfeleknek szól, akik nem engedhetik meg maguknak az összes IP-cím engedélyezését a 3306-os porton.
Kapcsolja be a bináris naplózást.
Ha meg szeretné tudni, hogy a bináris naplózás engedélyezve van-e az elsődlegesen, írja be a következő parancsot:
SHOW VARIABLES LIKE 'log_bin';
Ha a változó
log_bin
visszaadja az értéketON
, a bináris naplózás engedélyezve van a kiszolgálón.Ha
log_bin
visszaadja az értéketOFF
, szerkessze a my.cnf fájlt, hogylog_bin=ON
bekapcsolja a bináris naplózást. Indítsa újra a kiszolgálót a módosítás érvénybe lépéséhez.A forráskiszolgáló beállításainak konfigurálása.
A data-in replikáció megköveteli, hogy a paraméter
lower_case_table_names
konzisztens legyen a forrás- és replikakiszolgálók között. Alower_case_table_names
paraméter alapértelmezés szerint az Azure Database for MariaDB-ben van beállítva1
.SET GLOBAL lower_case_table_names = 1;
Hozzon létre egy új replikációs szerepkört, és állítson be engedélyeket.
Hozzon létre egy felhasználói fiókot a forráskiszolgálón, amely replikációs jogosultságokkal van konfigurálva. A fiókot SQL-parancsok vagy MySQL Workbench használatával hozhatja létre. Ha SSL használatával szeretne replikálni, ezt meg kell adnia a felhasználói fiók létrehozásakor.
Ha meg szeretné tudni, hogyan vehet fel felhasználói fiókokat a forráskiszolgálóra, tekintse meg a MariaDB dokumentációját.
Az alábbi parancsok használatával az új replikációs szerepkör bármely gépről elérheti a forrást, nem csak a forrást üzemeltető gépről. Ehhez a hozzáféréshez adja meg a syncuser@'%' értéket a felhasználó létrehozásához.
A MariaDB dokumentációjáról további információt a fióknevek megadásával kapcsolatban talál.
SQL-parancs
Replikáció SSL-lel
Ha minden felhasználói kapcsolathoz SSL-t szeretne igényelni, írja be a következő parancsot egy felhasználó létrehozásához:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;
Replikáció SSL nélkül
Ha az SSL nem minden kapcsolathoz szükséges, adja meg a következő parancsot a felhasználó létrehozásához:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';
MySQL Workbench
A replikációs szerepkör a MySQL Workbenchben való létrehozásához a Felügyelet panelen válassza a Felhasználók és jogosultságok lehetőséget. Ezután válassza a Fiók hozzáadása lehetőséget.
Adjon meg egy felhasználónevet a Bejelentkezési név mezőben.
Válassza a Rendszergazda osztó szerepkörök panelt, majd a Globális jogosultságok listájában válassza a Replikációs rabszolga lehetőséget. Válassza az Alkalmaz lehetőséget a replikációs szerepkör létrehozásához.
Állítsa be a forráskiszolgálót írásvédett üzemmódra.
Az adatbázis memóriaképe előtt a kiszolgálót írásvédett módban kell elhelyezni. Írásvédett módban a forrás nem tud írási tranzakciókat feldolgozni. Az üzleti hatás elkerülése érdekében ütemezze az írásvédett ablakot csúcsidőn kívülre.
FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;
Kérje le az aktuális bináris naplófájl nevét és eltolását.
Az aktuális bináris naplófájl nevének és eltolásának meghatározásához futtassa a parancsot
show master status
.show master status;
Az eredményeknek az alábbi táblázathoz hasonlónak kell lenniük:
Jegyezze fel a bináris fájlnevet, mert a későbbi lépésekben használni fogja.
Szerezze be a GTID-pozíciót (nem kötelező, a GTID-vel való replikációhoz szükséges).
Futtassa a függvényt
BINLOG_GTID_POS
a megfelelő binlogfájl nevének és eltolásának GTID-pozíciójának lekéréséhez.select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
A forráskiszolgáló memóriaképe és visszaállítása
Az összes adatbázis kiírása a forráskiszolgálóról.
A mysqldump használatával az összes adatbázist a forráskiszolgálóról lehet kivenni. A MySQL-kódtár és a teszttár nem szükséges.
További információ: Memóriakép és visszaállítás.
Állítsa be a forráskiszolgálót olvasási/írási módra.
Az adatbázis kidobása után módosítsa a forrás MariaDB-kiszolgálót írási/olvasási módra.
SET GLOBAL read_only = OFF; UNLOCK TABLES;
Állítsa vissza a memóriaképfájlt az új kiszolgálóra.
Állítsa vissza a memóriaképfájlt az Azure Database for MariaDB szolgáltatásban létrehozott kiszolgálóra. A memóriaképfájl MariaDB-kiszolgálóra való visszaállításáról a Memóriakép és visszaállítás című témakörben olvashat.
Ha a memóriaképfájl nagy, töltse fel egy Azure-beli virtuális gépre a replikakiszolgálóval azonos régióban. Állítsa vissza az Azure Database for MariaDB-kiszolgálóra a virtuális gépről.
A forrás- és replikakiszolgálók összekapcsolása a data-in replikáció elindításához
Állítsa be a forráskiszolgálót.
Az összes adatreplikációs függvény tárolt eljárásokkal történik. A data-in replikációs tárolt eljárásokban minden eljárás megtalálható. A tárolt eljárások futtathatók a MySQL-rendszerhéjban vagy a MySQL Workbenchben.
Két kiszolgáló összekapcsolásához és a replikáció elindításához jelentkezzen be a célreplika-kiszolgálóra az Azure DB for MariaDB szolgáltatásban. Ezután állítsa be a külső példányt forráskiszolgálóként az
mysql.az_replication_change_master
Azure DB for MariaDB-kiszolgálón tárolt vagymysql.az_replication_change_master_with_gtid
tárolt eljárással.CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');
vagy
CALL mysql.az_replication_change_master_with_gtid('<master_host>', '<master_user>', '<master_password>', 3306, '<master_gtid_pos>', '<master_ssl_ca>');
- master_host: a forráskiszolgáló állomásneve
- master_user: a forráskiszolgáló felhasználóneve
- master_password: a forráskiszolgáló jelszava
- master_log_file: a bináris naplófájl neve nem fut
show master status
- master_log_pos: bináris napló pozíciója a futtatástól
show master status
- master_gtid_pos: GTID-pozíció futtatása
select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
- master_ssl_ca: A hitelesítésszolgáltatói tanúsítvány környezete. Ha nem SSL-t használ, adjon meg egy üres sztringet.*
*Javasoljuk, hogy a master_ssl_ca paramétert adja meg változóként. További információkért tekintse meg az alábbi példákat.
Példák
Replikáció SSL-lel
Hozza létre a változót
@cert
a következő parancsok futtatásával:SET @cert = '-----BEGIN CERTIFICATE----- PLACE YOUR PUBLIC KEY CERTIFICATE\'S CONTEXT HERE -----END CERTIFICATE-----'
Az SSL-replikáció a tartomány companya.com üzemeltetett forráskiszolgáló és az Azure Database for MariaDB-ben üzemeltetett replikakiszolgáló között van beállítva. Ez a tárolt eljárás a replikán fut.
CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, @cert);
Replikáció SSL nélkül
Az SSL nélküli replikáció a tartomány companya.com üzemeltetett forráskiszolgáló és az Azure Database for MariaDB-ben üzemeltetett replikakiszolgáló között van beállítva. Ez a tárolt eljárás a replikán fut.
CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, '');
Indítsa el a replikációt.
A replikáció elindításához hívja meg a
mysql.az_replication_start
tárolt eljárást.CALL mysql.az_replication_start;
Ellenőrizze a replikáció állapotát.
A replikáció állapotának
show slave status
megtekintéséhez hívja meg a replikakiszolgáló parancsát.show slave status;
Slave_SQL_Running
HaSlave_IO_Running
a replikáció állapotayes
és értékeSeconds_Behind_Master
az0
, akkor a replikáció működik.Seconds_Behind_Master
A replika késését jelzi. Ha az érték nem0
, akkor a replika feldolgozja a frissítéseket.Frissítse a megfelelő kiszolgálóváltozókat, hogy biztonságosabbá tegyék az adatreplikálást (csak a GTID nélküli replikációhoz szükséges).
A MariaDB natív replikációs korlátozása miatt a GTID-forgatókönyv nélkül kell beállítania
sync_master_info
éssync_relay_log_info
változókat a replikációhoz.Ellenőrizze a replikakiszolgáló
sync_master_info
éssync_relay_log_info
a változók adatait, hogy az adatok replikálása stabil-e, és állítsa a változókat a következőre1
: .
Egyéb tárolt eljárások
Replikáció leállítása
A forrás- és replikakiszolgáló közötti replikáció leállításához használja a következő tárolt eljárást:
CALL mysql.az_replication_stop;
A replikációs kapcsolat eltávolítása
A forrás- és replikakiszolgáló közötti kapcsolat eltávolításához használja a következő tárolt eljárást:
CALL mysql.az_replication_remove_master;
A replikációs hiba kihagyása
A replikációs hiba kihagyásához és a replikáció engedélyezéséhez használja a következő tárolt eljárást:
CALL mysql.az_replication_skip_counter;
További lépések
További információ az Azure Database for MariaDB-hez készült data-in replikációról.