Konfigurace replikace příchozích dat ve službě Azure Database for MariaDB
Důležité
Azure Database for MariaDB je na cestě vyřazení. Důrazně doporučujeme migrovat do služby Azure Database for MySQL. Další informace o migraci na Azure Database for MySQL najdete v tématu Co se děje se službou Azure Database for MariaDB?.
Tento článek popisuje, jak nastavit replikaci dat ve službě Azure Database for MariaDB konfigurací zdrojových serverů a serverů replik. Tento článek předpokládá, že máte zkušenosti se servery a databázemi MariaDB.
Pokud chcete vytvořit repliku ve službě Azure Database for MariaDB, synchronizuje replikace dat ze zdrojového místního serveru MariaDB, ve virtuálních počítačích nebo v cloudových databázových službách. Replikace vstupních dat je založená na replikaci na základě pozice v souboru binárního protokolu (binlog) nativní pro MariaDB. Další informace o replikaci binlogu najdete v přehledu replikace binlogu.
Před provedením kroků v tomto článku si projděte omezení a požadavky replikace příchozích dat.
Poznámka:
Pokud je zdrojový server verze 10.2 nebo novější, doporučujeme nastavit replikaci příchozích dat pomocí globálního ID transakce.
Poznámka:
Tento článek obsahuje odkazy na termín slave (podřízený) , což je termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.
Vytvoření serveru MariaDB, který se použije jako replika
Vytvořte nový server Azure Database for MariaDB (například replica.mariadb.database.azure.com). Server je server repliky v replikaci dat.
Další informace o vytvoření serveru najdete v tématu Vytvoření serveru Azure Database for MariaDB pomocí webu Azure Portal.
Důležité
Server Azure Database for MariaDB musíte vytvořit v cenových úrovních Pro obecné účely nebo Optimalizováno pro paměť.
Vytvořte stejné uživatelské účty a odpovídající oprávnění.
Uživatelské účty se nereplikují ze zdrojového serveru na server repliky. Pokud chcete uživatelům poskytnout přístup k serveru repliky, musíte ručně vytvořit všechny účty a odpovídající oprávnění na nově vytvořeném serveru Azure Database for MariaDB.
Přidejte IP adresu zdrojového serveru do pravidel brány firewall repliky.
Pomocí webu Azure Portal nebo Azure CLI aktualizujte pravidla brány firewall.
Konfigurace zdrojového serveru
Následující kroky připraví a nakonfigurují server MariaDB hostovaný místně, na virtuálním počítači nebo v cloudové databázové službě pro replikaci dat. Server MariaDB je zdrojem v replikaci dat.
Než budete pokračovat, projděte si požadavky na primární server.
Ujistěte se, že zdrojový server umožňuje příchozí i odchozí provoz na portu 3306 a že zdrojový server má veřejnou IP adresu, DNS je veřejně přístupný nebo má plně kvalifikovaný název domény (FQDN).
Otestujte připojení ke zdrojovému serveru tak, že se pokusíte připojit z nástroje, jako je příkazový řádek MySQL hostovaný na jiném počítači nebo z Azure Cloud Shellu dostupného na webu Azure Portal.
Pokud má vaše organizace přísné zásady zabezpečení a nepovolí všem IP adresám na zdrojovém serveru povolit komunikaci z Azure se zdrojovým serverem, můžete k určení IP adresy serveru Azure Database for MariaDB použít následující příkaz.
Přihlaste se ke službě Azure Database for MariaDB pomocí nástroje, jako je příkazový řádek MySQL.
Spusťte následující dotaz.
SELECT @@global.redirect_server_host;
Níže je uveden ukázkový výstup:
+-----------------------------------------------------------+ | @@global.redirect_server_host | +-----------------------------------------------------------+ | e299ae56f000.tr1830.westus1-a.worker.database.windows.net | +-----------------------------------------------------------+
Ukončete příkazový řádek MySQL.
Spuštěním následujícího příkazu v nástroji ping získejte IP adresu.
ping <output of step 2b>
Příklad:
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.
Nakonfigurujte pravidla brány firewall zdrojového serveru tak, aby zahrnovala výstupní IP adresu předchozího kroku na portu 3306.
Poznámka:
Tato IP adresa se může změnit kvůli operacím údržby nebo nasazení. Tato metoda připojení je určená jenom pro zákazníky, kteří si nemohou dovolit povolit všechny IP adresy na portu 3306.
Zapněte binární protokolování.
Pokud chcete zjistit, jestli je na primárním serveru povolené binární protokolování, zadejte následující příkaz:
SHOW VARIABLES LIKE 'log_bin';
Pokud proměnná
log_bin
vrátí hodnotuON
, je na vašem serveru povolené binární protokolování.Pokud
log_bin
vrátí hodnotuOFF
, upravte soubor my.cnf tak, abylog_bin=ON
se zapíná binární protokolování. Restartujte server, aby se změna projevila.Nakonfigurujte nastavení zdrojového serveru.
Replikace příchozích dat vyžaduje, aby byl parametr
lower_case_table_names
konzistentní mezi zdrojovými servery a servery repliky. Parametrlower_case_table_names
je ve výchozím nastavení nastavený1
ve službě Azure Database for MariaDB.SET GLOBAL lower_case_table_names = 1;
Vytvořte novou roli replikace a nastavte oprávnění.
Na zdrojovém serveru, který je nakonfigurovaný s oprávněními replikace, vytvořte uživatelský účet. Účet můžete vytvořit pomocí příkazů SQL nebo aplikace MySQL Workbench. Pokud se chystáte replikovat pomocí protokolu SSL, musíte ho zadat při vytváření uživatelského účtu.
Informace o přidání uživatelských účtů na zdrojový server najdete v dokumentaci k MariaDB.
Pomocí následujících příkazů má nová role replikace přístup ke zdroji z libovolného počítače, nejen k počítači, který je hostitelem samotného zdroje. Pro tento přístup zadejte v příkazu syncuser@ %, který vytvoří uživatele.
Další informace o dokumentaci k MariaDB najdete v tématu Zadání názvů účtů.
Příkaz SQL
Replikace s využitím SSL
Pokud chcete vyžadovat protokol SSL pro všechna uživatelská připojení, zadejte následující příkaz, který uživatele vytvoří:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;
Replikace bez SSL
Pokud pro všechna připojení není vyžadován protokol SSL, vytvořte uživatele zadáním následujícího příkazu:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';
MySQL Workbench
Pokud chcete vytvořit roli replikace v aplikaci MySQL Workbench, vyberte v podokně Správa možnost Uživatelé a oprávnění. Pak vyberte Přidat účet.
Do pole Přihlašovací jméno zadejte uživatelské jméno.
Vyberte panel Správa istrativních rolí a potom v seznamu globálních oprávnění vyberte Replikační slave. Výběrem možnosti Použít vytvořte roli replikace.
Nastavte zdrojový server na režim jen pro čtení.
Před výpisem databáze musí být server umístěn v režimu jen pro čtení. V režimu jen pro čtení nemůže zdroj zpracovat žádné transakce zápisu. Abyste se vyhnuli obchodním dopadům, naplánujte okno jen pro čtení v době mimo špičku.
FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;
Získejte aktuální název a posun souboru binárního protokolu.
Pokud chcete určit aktuální název a posun souboru binárního protokolu, spusťte příkaz
show master status
.show master status;
Výsledky by měly být podobné následující tabulce:
Poznamenejte si název binárního souboru, protože se použije v dalších krocích.
Získejte pozici GTID (volitelné, potřebné pro replikaci s GTID).
Spuštěním funkce
BINLOG_GTID_POS
získejte pozici GTID pro odpovídající název a posun souboru binlogu.select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
Výpis a obnovení zdrojového serveru
Vysadí všechny databáze ze zdrojového serveru.
Pomocí nástroje mysqldump vysadíte všechny databáze ze zdrojového serveru. Není nutné vysunout knihovnu MySQL a testovací knihovnu.
Další informace najdete v tématu Výpis a obnovení.
Nastavte zdrojový server na režim čtení a zápisu.
Po výpisu databáze změňte zdrojový server MariaDB zpět do režimu čtení a zápisu.
SET GLOBAL read_only = OFF; UNLOCK TABLES;
Obnovte soubor s výpisem paměti na nový server.
Obnovte soubor výpisu paměti na server vytvořený ve službě Azure Database for MariaDB. Informace o obnovení souboru s výpisem paměti na server MariaDB najdete v tématu Výpis a obnovení .
Pokud je soubor s výpisem paměti velký, nahrajte ho do virtuálního počítače v Azure ve stejné oblasti jako server repliky. Obnovte ho z virtuálního počítače na server Azure Database for MariaDB.
Propojení zdrojových serverů a serverů repliky za účelem spuštění replikace příchozích dat
Nastavte zdrojový server.
Všechny funkce replikace příchozích dat se provádějí uloženými procedurami. Všechny postupy najdete v uložených procedurách replikace příchozích dat. Uložené procedury je možné spustit v prostředí MySQL nebo MySQL Workbench.
Pokud chcete propojit dva servery a spustit replikaci, přihlaste se k cílovému serveru repliky ve službě Azure DB for MariaDB. Dále nastavte externí instanci jako zdrojový server pomocí
mysql.az_replication_change_master
nebomysql.az_replication_change_master_with_gtid
uložené procedury na serveru Azure DB for MariaDB.CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');
nebo
CALL mysql.az_replication_change_master_with_gtid('<master_host>', '<master_user>', '<master_password>', 3306, '<master_gtid_pos>', '<master_ssl_ca>');
- master_host: název hostitele zdrojového serveru
- master_user: uživatelské jméno zdrojového serveru
- master_password: heslo pro zdrojový server
- master_log_file: Spuštění názvu binárního souboru protokolu
show master status
- master_log_pos: Pozice binárního protokolu od spuštění
show master status
- master_gtid_pos: Pozice GTID ze spuštění
select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
- master_ssl_ca: Kontext certifikátu certifikační autority. Pokud nepoužíváte SSL, předejte prázdný řetězec.*
*Doporučujeme předat parametr master_ssl_ca jako proměnnou. Další informace najdete v následujících příkladech.
Příklady
Replikace s využitím SSL
Vytvořte proměnnou
@cert
spuštěním následujících příkazů:SET @cert = '-----BEGIN CERTIFICATE----- PLACE YOUR PUBLIC KEY CERTIFICATE\'S CONTEXT HERE -----END CERTIFICATE-----'
Replikace s protokolem SSL se nastavuje mezi zdrojovým serverem hostovaným v doméně companya.com a serverem repliky hostovaným ve službě Azure Database for MariaDB. Tato uložená procedura se spouští na replice.
CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, @cert);
Replikace bez SSL
Replikace bez PROTOKOLU SSL je nastavená mezi zdrojovým serverem hostovaným v doméně companya.com a serverem repliky hostovaným ve službě Azure Database for MariaDB. Tato uložená procedura se spouští na replice.
CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, '');
Spusťte replikaci.
Zavolejte uloženou proceduru
mysql.az_replication_start
, aby se spustila replikace.CALL mysql.az_replication_start;
Zkontrolujte stav replikace.
Stav replikace zobrazíte voláním
show slave status
příkazu na serveru repliky.show slave status;
Pokud
Slave_IO_Running
jsou aSlave_SQL_Running
jsou ve stavuyes
a hodnotaSeconds_Behind_Master
je0
, replikace funguje.Seconds_Behind_Master
označuje, jak pozdě je replika. Pokud hodnota není0
, replika zpracovává aktualizace.Aktualizujte odpovídající proměnné serveru, aby byla replikace v datech bezpečnější (vyžadována pouze pro replikaci bez GTID).
Kvůli omezení nativní replikace v MariaDB je nutné nastavit
sync_master_info
async_relay_log_info
proměnné replikace bez scénáře GTID.Zkontrolujte server repliky
sync_master_info
async_relay_log_info
proměnné, abyste se ujistili, že replikace příchozích dat je stabilní, a nastavte proměnné na1
.
Další uložené procedury
Zastavení replikace
Pokud chcete zastavit replikaci mezi zdrojovým serverem a serverem repliky, použijte následující uloženou proceduru:
CALL mysql.az_replication_stop;
Odebrání vztahu replikace
Pokud chcete odebrat vztah mezi zdrojovým serverem a serverem repliky, použijte následující uloženou proceduru:
CALL mysql.az_replication_remove_master;
Přeskočit chybu replikace
Pokud chcete přeskočit chybu replikace a povolit replikaci, použijte následující uloženou proceduru:
CALL mysql.az_replication_skip_counter;
Další kroky
Přečtěte si další informace o replikaci dat pro Azure Database for MariaDB.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro