MariaDB je bezplatný systém správy relačních databází s otevřeným zdrojovým kódem a je jednou z nejoblíbenějších možností. Replikace je proces kopírování dat z jednoho hlavního databázového serveru na jiný podřízený databázový server. V topologii master-slave jeden server funguje jako master a ostatní servery fungují jako slave. Při replikaci master-slave jsou data replikována pouze jednosměrně. Pokud změníte data na podřízeném serveru, nebudou replikována na hlavní server. Pokud selže hlavní server, stále můžete obnovit svá data z podřízeného serveru.
Replikaci MariaDB master-slave můžete použít k několika účelům; některé z nich jsou uvedeny níže:
- Škálovatelnost a vysoká dostupnost
- Zálohy
- Analytics
- Vyrovnávání zátěže
- Zvýšení výkonu databáze
- Zmírnění převzetí služeb při selhání
- Zabezpečení dat
V tomto tutoriálu vám ukážeme, jak nastavit replikaci MariaDB master-slave na serveru Ubuntu 18.04.
Předpoklady
- Dvě nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
- Statické heslo root nakonfigurované na obou serverech.
Krok 1 – Vytvoření cloudového serveru Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace MariaDB na oba servery
Nejprve budete muset nainstalovat MariaDB na oba servery. Můžete jej nainstalovat spuštěním následujícího příkazu:
apt-get install mariadb-server mariadb-client -y
Po instalaci MariaDB spusťte následující příkaz k zabezpečení instalace MariaDB:
mysql_secure_installation
Odpovězte na všechny otázky, jak je uvedeno níže:
Zadejte aktuální heslo pro root (zadejte pro žádné):Stiskněte Enter Nastavit heslo root? [A/n] A Nové heslo:Znovu zadejte nové heslo:Odstranit anonymní uživatele? [A/n] A Zakázat vzdálené přihlášení root? [A/n] A Odebrat testovací databázi a přístup k ní? [A/n] A Znovu načíst tabulky oprávnění? [A/n] A
V tomto okamžiku jste nainstalovali a zabezpečili oba servery MariaDB.
Krok 3 – Konfigurace hlavního serveru
Dále budete muset povolit binární protokolování a replikaci na hlavním serveru. Chcete-li tak učinit, otevřete soubor /etc/mysql/mariadb.conf.d/50-server.cnf pomocí preferovaného textového editoru:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Najděte linku bind-address a změňte hodnotu na 0.0.0.0, abyste povolili příchozí připojení.
bind-address =0.0.0.0
Dále přidejte na konec souboru následující řádky:
id serveru =1log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log/mysql/mysql-relay-bin.index
Po dokončení uložte a zavřete soubor. Poté restartujte službu MariaDB a implementujte změny:
systemctl restart mariadb
Dále budete muset vytvořit uživatele replikace. Podřízený server použije tohoto uživatele k přihlášení k hlavnímu serveru a k vyžádání binárních protokolů.
Nejprve se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Po zobrazení výzvy zadejte heslo uživatele root a poté vytvořte uživatele pomocí následujícího příkazu:
CREATE USER 'replication'@'%' identifikované pomocí 'vašeho-hesla';
Dále udělte tomuto uživateli oprávnění slave replikace pomocí následujícího příkazu:
UDĚLEJTE REPLIKACI SLAVE NA *.* TO 'replication'@'%';
Dále vyprázdněte oprávnění pomocí následujícího příkazu:
FLUSH PRIVILEGES;
Dále zkontrolujte stav hlavního serveru pomocí následujícího příkazu:
zobrazit hlavní stav;
Měli byste získat následující výstup:
+------------------+----------+--------------+- ------------------+| Soubor | Pozice | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+-- -----------------+| mysql-bin.000001 | 313 | | |+------------------+----------+--------------+--- ---------------+
Dále ukončete prostředí MariaDB pomocí následujícího příkazu:
KONEC;
Poznámka :Pamatujte prosím na Soubor a Pozice podrobnosti z výše uvedeného výstupu. Tyto hodnoty budete potřebovat při konfiguraci podřízeného serveru.
Krok 4 – Konfigurace podřízeného serveru
Dále se přihlaste k podřízenému serveru a otevřete soubor /etc/mysql/mariadb.conf.d/50-server.cnf:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Najděte linku bind-address a změňte hodnotu na 0.0.0.0, jak je uvedeno níže:
bind-address =0.0.0.0
Dále přidejte na konec souboru následující řádky:
id serveru =2log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log/mysql/mysql-relay-bin.index
Po dokončení uložte a zavřete soubor. Poté restartujte službu MariaDB a implementujte změny:
systemctl restart mariadb
Dále se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Po zobrazení výzvy zadejte své heslo uživatele root a poté zastavte podřízená vlákna, jak je znázorněno níže:
stop slave;
Dále spusťte následující příkaz pro nastavení podřízeného zařízení pro replikaci hlavního:
CHANGE MASTER TO MASTER_HOST ='ip-vašeho-hlavního hostitele', MASTER_USER ='replikace', MASTER_PASSWORD ='vaše-heslo', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS =313;
Dále spusťte podřízená vlákna a ukončete prostředí MariaDB, jak je znázorněno níže:
start slave;exit;
Poznámka :Upravte výše uvedený příkaz tak, aby používal vaši IP adresu hlavního hostitele a vaše heslo, které jste vytvořili v předchozích krocích. Použijte prosím název souboru protokolu a hodnoty pozice, které jste získali z hlavního serveru.
Krok 5 – Test replikace databáze
V tomto okamžiku jste nakonfigurovali replikaci master-slave. Nyní je čas otestovat replikaci mezi master to slave.
Na hlavním serveru se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Až budete vyzváni, zadejte své heslo uživatele root a poté vytvořte databázi s názvem mydb, jak je uvedeno níže:
vytvořit databázi mydb;
Dále vytvořte tabulku s názvem „products“ v databázi mydb:
použijte mydb;CREATE TABLE products(product_id INT NOT NULL AUTO_INCREMENT,product_name VARCHAR(100) NOT NULL,product_manufacturer VARCHAR(40) NOT NULL,submission_date DATE,PRIMARY KEY (product_id));
Dále spusťte následující příkaz a zkontrolujte tabulku:
ZOBRAZIT TABULKY;
Výstup:
+-----------------+| Tables_in_mydb |+----------------+| produkty |+----------------+
Na podřízeném serveru se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Po zobrazení výzvy zadejte heslo uživatele root a poté zkontrolujte stav podřízené jednotky:
ZOBRAZIT STAV SLAVE \G
Měli byste vidět následující výstup:
***************************** 1. řádek **************** ********** SLAVE_IO_STATE:Čekání na Master Odeslat událost Master_Host:Váš master-host-IP Master_user:Replikace Master_Port:3306 Connect_Retry:60 Master_log_File:mysql-bin.000001 Read_Master_Log_POS:721 Relay_log_Log_Log_LOG_ relay-bin.000002 Relay_Log_Pos:945 Relay_Master_Log_File:mysql-bin.000001 Slave_IO_Running: Running Ano SQL_Running:AnoDále spusťte následující příkaz a zkontrolujte, zda je databáze replikována:
zobrazit databáze;Měli byste vidět databázi mydb, kterou jste vytvořili na hlavním serveru:
+--------------------+| Databáze |+--------------------+| informační_schéma || mydb || mysql || performance_schema |+--------------------+Dále zkontrolujte tabulku produktů, kterou jste vytvořili na hlavním serveru:
MariaDB [(none)]> použít mydb;MariaDB [mydb]> zobrazit tabulky;V následujícím výstupu byste měli vidět tabulku produktů:
+-----------------+| Tables_in_mydb |+----------------+| produkty |+----------------+Gratulujeme! Vaše replikace MariaDB master-slave funguje podle očekávání. Nyní můžete snadno obnovit databázi v případě selhání. Začněte s replikací MariaDB master-slave ještě dnes s balíčkem VPS Hosting od Atlantic.Net.
Jak nastavit synchronizaci času s NTP na Ubuntu 18.04 7 výhod používání virtuálního privátního serveru pro vaše podnikáníLinux