Konfigurace Replikace vstupních dat v Azure Database for MariaDB
Tento článek popisuje, jak nastavit Replikace vstupních dat Azure Database for MariaDB pomocí konfigurace zdrojového serveru a serveru repliky. Tento článek předpokládá, že máte předchozí zkušenosti se servery a databázemi MariaDB.
Pokud chcete vytvořit repliku ve službě Azure Database for MariaDB, Replikace vstupních dat synchronizuje data ze zdrojového serveru MariaDB místně, 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 protokolu binlog najdete v přehledu replikace protokolu binlog.
Před provedením kroků v tomto článku si prohlédněte omezení a požadavky replikace ing.
Poznámka
Pokud je váš zdrojový server verze 10.2 nebo novější, doporučujeme nastavit Replikace vstupních dat pomocí GLOBÁLNÍHO ID transakce.
Poznámka
Tento článek obsahuje odkazy na termín podřízený, termín, který Microsoft už použí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ý Azure Database for MariaDB serveru (například replica.mariadb.database.azure.com). Serverem je server repliky v Replikace vstupních dat.
Další informace o vytvoření serveru najdete v tématu Azure Database for MariaDB serveru pomocí Azure Portal.
Důležité
Server úložiště musíte Azure Database for MariaDB cenových úrovních Pro obecné účely nebo Optimalizováno pro paměť.
Vytvořte identické 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živateli 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 Azure Database for MariaDB serveru.
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 Replikace vstupních dat. Server MariaDB je zdrojem v Replikace vstupních dat.
Než budete pokračovat, zkontrolujte 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 , že dns je veřejně přístupný nebo má plně kvalifikovaný název domény (FQDN).
Otestujte připojení ke zdrojovému serveru tím, že se pokusíte připojit z nástroje, jako je například příkazový řádek MySQL hostovaný na jiném počítači nebo z Azure Cloud Shell dostupného v 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 vašeho Azure Database for MariaDB serveru použít následující příkaz.
Přihlaste se ke svému Azure Database for MariaDB pomocí nástroje, jako je například příkazový řádek MySQL.
Spusťte následující dotaz.
mysql> 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>Napří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í. Tento způsob připojení je pouze pro zákazníky, kteří si nemohou dovolit povolit všechny IP adresy na portu 3306.
Zapněte binární protokolování.
Pokud chcete zobrazit, 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_binvrátí hodnotu , binární protokolování se povolí na vašemONserveru.Pokud
log_binvrátí hodnotu , upravte souborOFFmy.cnf tak, abylog_bin=ONzapíná binární protokolování. Restartujte server, aby se změna projeví.Nakonfigurujte nastavení zdrojového serveru.
Replikace vstupních dat vyžaduje, aby byl parametr mezi zdrojovým serverem a serverem
lower_case_table_namesrepliky konzistentní. Parametrlower_case_table_namesje ve výchozím nastavení v1Azure Database for MariaDB.SET GLOBAL lower_case_table_names = 1;Vytvořte novou roli replikace a nastavte oprávnění.
Vytvořte na zdrojovém serveru uživatelský účet, který má nakonfigurovaná oprávnění k replikaci. Účet můžete vytvořit pomocí příkazů SQL nebo MySQL Workbench. Pokud plánujete replikaci s protokolem SSL, musíte ji zadat při vytváření uživatelského účtu.
Informace o přidání uživatelských účtů na zdrojovém serveru najdete v dokumentaci k MariaDB.
Pomocí následujících příkazů může nová role replikace přistupovat ke zdroji z libovolného počítače, nejen z počítače, který je hostitelem samotného zdroje. Pro tento přístup zadejte syncuser @ '%' v příkazu pro vytvoření uživatele.
Další informace o dokumentaci k MariaDB najdete v tématu o zadávání názvů účtů.
SQL příkazu
Replikace s protokolem SSL
Pokud chcete pro všechna připojení uživatelů vyžadovat 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'@'%' REQUIRE SSL;Replikace bez SSL
Pokud se protokol SSL pro všechna připojení nevyžaduje, 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 Add Account (Přidat účet).

Do pole Login Name (Přihlašovací jméno) zadejte uživatelské jméno.

Vyberte panel Správní role a pak v seznamu Globální oprávnění vyberte Podřízený replikační server. Výběrem možnosti Použít vytvořte roli replikace.

Nastavte zdrojový server do režimu jen pro čtení.
Před výpisem paměti 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 dopadu na firmu, naplánujte si okno jen pro čtení v době mimo špičku.
FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;Získejte název a posun aktuálního binárního souboru 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 ho použijete v pozdějších krocích.
Získejte pozici GTID (volitelné, potřebné pro replikaci s GTID).
Spuštěním funkce získejte pozici GTID pro odpovídající název souboru
BINLOG_GTID_POSbinlog a posun.select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
Výpis a obnovení zdrojového serveru
Vy výpis všech databází ze zdrojového serveru.
K výpisu všech databází ze zdrojového serveru použijte mysqldump. Knihovnu MySQL a testovací knihovnu není nutné vy výpisem paměti.
Další informace najdete v tématu Výpis a obnovení.
Nastavte zdrojový server do režimu č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 s výpisem paměti na server vytvořený v Azure Database for MariaDB systému. Informace o obnovení & výpisu paměti na server MariaDB najdete v tématu Obnovení výpisu stavu systému.
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 na Azure Database for MariaDB serveru z virtuálního počítače.
Propojením zdrojového serveru a serveru repliky spusťte Replikace vstupních dat
Nastavte zdrojový server.
Všechny Replikace vstupních dat se provádí pomocí uložených procedur. Všechny procedury najdete v Replikace vstupních dat uložené procedury. Uložené procedury je možné spustit v prostředí MySQL nebo v aplikaci 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 serveru. Potom nastavte externí instanci jako zdrojový server pomocí uložené procedury nebo na Azure DB for MariaDB
mysql.az_replication_change_mastermysql.az_replication_change_master_with_gtidserveru.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 pro zdrojový Server
- master_password: heslo pro zdrojový Server
- master_log_file: název souboru binárního protokolu se spustí.
show master status - master_log_pos: binární umístění protokolu se spouští.
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 protokol 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 protokolem SSL
Vytvořte proměnnou
@certspuš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 je nastavená mezi zdrojovým serverem hostovaným v doméně companya.com a serverem repliky hostovaným v 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 SSL je nastavená mezi zdrojovým serverem hostovaným v doméně companya.com a serverem repliky hostovaným v 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.
mysql.az_replication_startPro spuštění replikace zavolejte uloženou proceduru.CALL mysql.az_replication_start;Zkontroluje stav replikace.
Voláním
show slave statuspříkazu na serveru repliky zobrazte stav replikace.show slave status;Pokud
Slave_IO_RunningaSlave_SQL_Runningjsou ve stavuyesa hodnotaSeconds_Behind_Masterje0, replikace funguje.Seconds_Behind_MasterUrčuje, jak pozdě je replika. Pokud hodnota není0, replika zpracovává aktualizace.Aktualizujte odpovídající proměnné serveru pro zajištění bezpečnější replikace dat (vyžaduje se jenom pro replikaci bez GTID).
Z důvodu nativního omezení replikace v MariaDB je nutné nastavit
sync_master_infoasync_relay_log_infoproměnné pro replikaci bez scénáře GTID.Zkontrolujte proměnné serveru repliky
sync_master_infoa ujistěte sesync_relay_log_info, že je replikace dat stabilní, a nastavte proměnné na1.
Jiné 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;
Odebrat vztah replikace
Pokud chcete odebrat relaci 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 povolení replikace, použijte následující uloženou proceduru:
CALL mysql.az_replication_skip_counter;
Další kroky
Přečtěte si další informace o replikace vstupních dat pro Azure Database for MariaDB.