Replikace dat je proces kopírování dat přes více serverů za účelem zlepšení dostupnosti dat a zvýšení spolehlivosti a výkonu aplikace. V MySQL replikace, data jsou zkopírována z databáze z hlavního serveru do jiných uzlů v reálném čase, aby byla zajištěna konzistence dat a také zajištěna záloha a redundance.
V této příručce vám ukážeme, jak můžete nastavit MySQL (Master-Slave ) replikace v distribucích založených na RHEL, jako je CentOS , Fedora , Rocky Linux a AlmaLinux .
Nastavení replikace MySQL
Zde je naše MySQL nastavení laboratoře replikace.
MySQL Master – 10.128.0.14MySQL Slave – 10.128.15.211
Začněme…
Krok 1:Instalace MySQL na hlavní a podřízený server
Začneme instalací MySQL databáze na obou master a otrok servery.
$ sudo dnf install @mysql
Po dokončení instalace přejděte na spuštění databázového serveru.
$ sudo systemctl spustit mysqld
Poté jej povolte, aby se spustil při spuštění systému nebo po restartu.
$ sudo systemctl povolit mysqld
Poté potvrďte, že MySQL databázový server běží podle obrázku:
$ sudo systemctl status mysqld
Krok 2:Zabezpečení MySQL na hlavním a podřízeném serveru
Dalším krokem je zabezpečení MySQL databáze na obou master a otrok servery. Důvodem je, že výchozí nastavení jsou nezabezpečená a představují určité mezery, které mohou hackeři snadno zneužít.
Pro posílení MySQL tedy spusťte příkaz:
$ sudo mysql_secure_installation
Nejprve budete muset nastavit MySQL root heslo. Ujistěte se, že poskytujete silné heslo root, nejlépe s více než 8 znaky, které jsou kombinací velkých, malých písmen, speciálních a číselných znaků.
Pro zbývající výzvy zadejte 'Y'
vyladit databázový server na doporučená nastavení.
Jakmile dokončíte instalaci a posílení MySQL na hlavním a podřízeném uzlu je dalším krokem konfigurace hlavního uzlu.
Krok 3:Konfigurace hlavního uzlu (serveru)
Dalším krokem je konfigurace Master uzel a udělte slave přístup uzlu k němu. Nejprve musíme upravit mysql-server.cnf konfigurační soubor.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Přidejte následující řádky pod [mysqld]
sekce.
bind-address =10.128.0.14server-id =1log_bin =mysql-bin
Po dokončení uložte změny a ukončete. Poté restartujte MySQL server.
$ sudo sysemctl restart mysqld
Dále se přihlaste do MySQL shell.
$ sudo mysql -u root -p
Provedením následujících příkazů vytvořte databázového uživatele, který bude použit k propojení hlavního a podřízeného zařízení pro replikaci.
mysql> VYTVOŘIT UŽIVATELE 'replica'@'10.128.15.211' IDENTIFIKOVANÉ PODLE '[email protected]';mysql> UDĚLEJTE REPLIKACI SLAVE NA *.*TO 'replica'@'10.128.15.211';
Použijte změny a ukončete MySQL server.
mysql> FLUSH PRIVILEGES;mysql> EXIT;
Ověřte stav hlavního serveru.
mysql> ZOBRAZIT STAV MASTER\G
Poznamenejte si název souboru a pozici. Budete to potřebovat později při nastavování slave zařízení pro replikaci. V našem případě máme název souboru jako mysql-bin.000001
a Pozice 1232 .
Krok 4:Nakonfigurujte podřízený uzel (server)
Nyní se vraťte do Slave uzlu. Ještě jednou upravte mysql-server.cnf konfigurační soubor.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Stejně jako předtím vložte tyto řádky pod [mysqld]
sekce. Změňte IP adresu tak, aby odpovídala IP podřízeného zařízení. Také přiřaďte jiné ID serveru . Zde jsme mu přiřadili hodnotu 2 .
bind-address =10.128.15.211server-id =2log_bin =mysql-bin
Uložte změny a ukončete soubor. Poté restartujte databázový server.
$ sudo systemctl restart mysqld
Chcete-li nakonfigurovat Slave uzel, který chcete replikovat z hlavního uzlu, přihlaste se k serveru MySQL podřízeného.
$ sudo mysql -u root -p
Nejprve a především zastavte vlákna replikace:
mysql> STOP SLAVE;
Poté proveďte následující příkaz pro konfiguraci podřízeného uzlu pro replikaci databází z hlavního uzlu.
mysql> ZMĚNIT MASTER NA MASTER_HOST='10.128.0.14' , MASTER_USER='replika' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000_01_POS1' ,3_POS1=1Všimněte si, že MASTER_LOG_FILE a MASTER_LOG_POS příznaky odpovídají souboru a Pozice hodnoty z Hlavní uzel na konci kroku 1.
MASTER_HOST , MASTER_USER, a MASTER_PASSWORD odpovídají hlavní IP adrese, uživateli replikace a heslu uživatele replikace.
Potom spusťte vlákna replikace slave:
mysql> START SLAVE;Krok 4:Testování replikace MySQL Master-Slave
Chcete-li nyní otestovat, zda replikace mezi hlavním a podřízeným uzlem funguje, přihlaste se k databázovému serveru MySQL na hlavním uzlu:
$ sudo mysql -u root -pVytvořte testovací databázi. Zde se naše testovací databáze nazývá replication_db .
mysql> CREATE DATABASE replication_db;Ověřte existenci databáze.mysql> ZOBRAZIT DATABÁZE;Nyní přejděte do slave uzlu, přihlaste se k serveru MySQL a potvrďte, že replication_db databáze je přítomna. Z výstupu níže vidíme, že databáze je přítomna. Toto je potvrzení, že replikace proběhla z hlavního do podřízeného uzlu.
mysql> ZOBRAZIT DATABÁZE;A je to, úspěšně jsme předvedli, jak můžete nastavit MySQL model replikace master-slave, který dokáže replikovat databáze z hlavního uzlu na uzel slave.