Konfigurace replikace dat flexibilního serveru Azure Database for MySQL
Tento článek popisuje, jak nastavit replikaci dat na flexibilním serveru Azure Database for MySQL konfigurací zdrojových serverů a serverů replik. Tento článek předpokládá, že máte zkušenosti se servery a databázemi MySQL.
Pro replikaci dat je zdrojem vždy flexibilní server Azure Database for MySQL. Replika může být libovolný externí server MySQL na jiných poskytovatelích cloudu, místních nebo virtuálních počítačích. Před provedením kroků v tomto článku si projděte omezení a požadavky replikace odchozích dat.
Poznámka:
Tento článek odkazuje na termín slave, termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.
Vytvořte instanci flexibilního serveru Azure Database for MySQL, která se použije jako zdroj.
Vytvořte novou instanci flexibilního serveru Azure Database for MySQL (například sourceserver.mysql.database.Azure.com). Projděte si rychlý start: Vytvoření instance Služby Azure Database for MySQL pomocí webu Azure Portal. Tento server je "zdrojovým" serverem pro replikaci odchozích dat.
Vytvořte duplicitní uživatelské účty a odpovídající oprávnění.
- Uživatelské účty se nereplikují ze zdrojového serveru na server repliky. Předpokládejme, že plánujete poskytnout uživatelům přístup k serveru repliky. V takovém případě musíte ručně vytvořit všechny účty a odpovídající oprávnění k této nově vytvořené instanci flexibilního serveru Azure Database for MySQL.
Konfigurace zdrojového serveru MySQL
Následující kroky připraví a nakonfigurují instanci flexibilního serveru Azure Database for MySQL fungující jako zdroj.
Požadavky na síť
Ujistěte se, že jsou navázána nastavení sítě, aby zdrojový server a server repliky mohl bezproblémově komunikovat.
Pokud je zdrojový server ve veřejném přístupu, ujistěte se, že pravidla brány firewall povolují IP adresu serveru repliky. Pokud je server repliky hostovaný v Azure, ujistěte se, že jste vybrali možnost povolit veřejný přístup z jakékoli služby Azure na stránce sítě na webu Azure Portal. Pokud je zdrojový server v privátním přístupu, ujistěte se, že se server repliky může připojit ke zdroji prostřednictvím partnerského vztahu virtuálních sítí nebo připojení brány VPN typu VNet-to-VNet.Poznámka:
Další informace – Koncepty připojení a sítě pro flexibilní server Azure Database for MySQL
Zapnutí binárního protokolování
Spuštěním následujícího příkazu zkontrolujte, jestli je ve zdroji povolené binární protokolování:
SHOW VARIABLES LIKE 'log_bin';
Pokud se proměnná log_bin vrátí s hodnotou ON, je na vašem serveru povolené binární protokolování.
Vytvoření nové role replikace a nastavení oprávnění
Vytvořte uživatelský účet na konfigurovaném zdrojovém serveru s oprávněními replikace. Můžete to provést pomocí příkazů SQL nebo nástroje, jako je MySQL Workbench. Zvažte, jestli plánujete replikaci pomocí PROTOKOLU SSL, protože při vytváření uživatele bude potřeba zadat tuto možnost. Informace o přidávání uživatelských účtů na zdrojovém serveru najdete v dokumentaci k MySQL.
V následujícíchpříkazch To se provádí zadáním "syncuser@"%" v příkazu create user. Další informace o nastavení názvů účtů najdete v dokumentaci k MySQL.
K nastavení názvů účtů můžete použít několik nástrojů. Vyberte ten, který nejlépe vyhovuje vašemu prostředí.
Replikace s využitím SSL
Pokud chcete vyžadovat protokol SSL pro všechna uživatelská připojení, vytvořte uživatele pomocí následujícího příkazu:
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 pomocí následujícího příkazu:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';
Výpis a obnovení zdrojového serveru
Tuto část přeskočte, pokud se jedná o nově vytvořený zdrojový server bez existujících dat pro migraci na repliku. V tomto okamžiku můžete tabulky odemknout:
SET GLOBAL read_only = OFF;
UNLOCK TABLES;
Pokud má zdrojový server existující data pro migraci na repliku, postupujte podle následujících kroků.
Určete, které databáze a tabulky chcete replikovat na flexibilní server Azure Database for MySQL, a proveďte výpis ze zdrojového serveru. K výpisu databází z primárního serveru můžete použít mysqldump. Další podrobnosti najdete v tématu Výpis a obnovení. Není nutné vysunout knihovnu MySQL a testovací knihovnu.
Nastavte zdrojový server na režim čtení a zápisu.
Po výpisu databáze změňte zdrojovou instanci flexibilního serveru Azure Database for MySQL na režim č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ý na flexibilním serveru Azure Database for MySQL. Projděte si výpis a obnovení souboru s výpisem paměti do instance flexibilního serveru Azure Database for MySQL. 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 ji z virtuálního počítače do instance flexibilního serveru Azure Database for MySQL.
Poznámka:
Pokud se chcete vyhnout nastavení databáze jen pro čtení při výpisu a obnovení, můžete použít mydumper/myloader.
Nakonfigurujte server repliky tak, aby spustil replikaci odchozích dat.
Filtrování
Předpokládejme, že se mezi flexibilním serverem Azure Database for MySQL a externím Serverem MySQL na jiných poskytovatelích cloudu nebo místně nastavuje replikace odchozích dat. V takovém případě musíte pomocí filtru replikace vyfiltrovat vlastní tabulky Azure na serveru repliky. Toho lze dosáhnout nastavením Replicate_Wild_Ignore_Table = "mysql.__%" pro filtrování interních tabulek mysql flexibilního serveru Azure Database for MySQL. Další podrobnosti o úpravách tohoto parametru serveru najdete v příručce k MySQL 5.7 :: 13.4.2.2 PŘÍKAZ CHANGE REPLICATION FILTER .
Server repliky nastavte tak, že se k němu připojíte a otevřete prostředí MySQL na serveru repliky. Na příkazovém řádku spusťte následující operaci, která konfiguruje několik nastavení replikace MySQL najednou:
CHANGE THE REPLICATION SOURCE TO SOURCE_HOST='<master_host>', SOURCE_USER='<master_user>', SOURCE_PASSWORD='<master_password>', SOURCE_LOG_FILE='<master_log_file>', SOURCE_LOG_POS=<master_log_pos>
- master_host: název hostitele zdrojového serveru (příklad – source.mysql.database.Azure.com)
- master_user: uživatelské jméno zdrojového serveru (příklad – syncuser@%)
- master_password: heslo pro zdrojový server
- master_log_file: Název souboru binárního protokolu ze spuštěného zobrazení hlavního stavu
- master_log_pos: Pozice binárního protokolu ze spuštěného zobrazení stavu hlavního serveru
Poznámka:
Pokud chcete pro připojení použít protokol SSL, přidejte do příkazu atribut SOURCE_SSL=1. Další informace o použití protokolu SSL v kontextu replikace najdete v tématu : https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html
Pomocí následujícího příkazu aktivujte server repliky.
START REPLICA;
V tomto okamžiku instance repliky začne replikovat všechny změny provedené v databázi zdrojového serveru. Můžete to otestovat tak, že ve zdrojové databázi vytvoříte ukázkovou tabulku a zkontrolujete, jestli se úspěšně replikuje.
Zkontrolujte stav replikace.
Stav replikace zobrazíte voláním příkazu show slave\G na serveru repliky.
show slave status;
Pokud je
yes
stav Slave_IO_Running a Slave_SQL_Running a hodnota Seconds_Behind_Master,0
replikace funguje dobře. Seconds_Behind_Master označuje, jak pozdě je replika. Replika zpracovává aktualizace, pokud hodnota není0
.Pokud je server repliky hostovaný na virtuálním počítači Azure, nastavte možnost Povolit přístup ke službám Azure na zapnuto ve zdroji, aby mohly zdrojové servery a servery repliky komunikovat. Toto nastavení lze změnit z možností zabezpečení připojení. Další informace najdete v tématu Správa pravidel brány firewall pro flexibilní server Azure Database for MySQL pomocí webu Azure Portal.
Pokud jste k výpisu databáze použili mydumper/myloader, mohli byste získat master_log_file a master_log_pos ze souboru /backup/metadata.