Klastrování databází je proces sloučení více serverů jejich připojením k jedné databázi. Clustering zlepšuje dostupnost vaší databáze rozložením zátěže na různé servery. Pokud některý server selže, ostatní jsou rychle k dispozici pro pokračování v poskytování služeb.
MariaDB Galera je multi-master clusteringové řešení, které vám umožňuje číst a zapisovat do libovolného uzlu v clusteru. S MariaDB Galera je změna provedená v jakémkoliv uzlu replikována do všech uzlů. MariaDB Galera podporuje úložiště XtraDB/InnoDB a je k dispozici pouze v systému Linux.
Funkce
- Aktivní-aktivní multi-master topologie
- Automatické spojení uzlů
- Schopnost číst a zapisovat do libovolného uzlu clusteru
- Automatické řízení členství, selhání uzlů vyřazení z clusteru
- Automatické zřizování uzlů
V tomto tutoriálu vám ukážeme, jak nastavit tříuzlový cluster MariaDB Galera na Ubuntu 18.04.
Předpoklady
- Tři nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
- Heslo uživatele root nakonfigurované na všech serverech.
Pro účely tohoto tutoriálu použijeme tři servery s následující konfigurací:
server1 :192.168.0.101
server2 :192.168.0.102
server3 :192.168.0.103
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 serveru MariaDB na všechny servery
Nejprve přidejte klíč úložiště MariaDB pomocí následujícího příkazu:
apt-get install software-properties-commonapt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Dále přidejte úložiště pomocí následujícího příkazu:
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
Po přidání úložiště aktualizujte úložiště pomocí následujícího příkazu:
apt-get update -y
Nakonec nainstalujte server MariaDB pomocí následujícího příkazu:
apt-get install mariadb-server -y
Počínaje verzí 10.1 je funkce clusteru Galera součástí MariaDB. Balíček MariaDB Galera Server se automaticky nainstaluje se serverem MariaDB.
Můžete jej nastavit pomocí následujícího příkazu:
mysql_secure_installation
Odpovězte na všechny otázky, jak je uvedeno níže:
Zadejte aktuální heslo pro uživatele root (zadejte pro žádné):Zadejte heslo uživatele root Přepnout na ověřování unix_socket [A/n] n Změnit heslo uživatele 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
Poznámka :Opakujte výše uvedené kroky na všech třech serverech.
Krok 3 – Konfigurace každého serveru v clusteru
V tomto okamžiku jsme nainstalovali a nakonfigurovali server MariaDB na každém serveru. Dále budete muset nakonfigurovat cluster Galera pro komunikaci mezi servery. K tomu budete muset vytvořit společný konfigurační soubor na každém serveru.
V této části vám ukážeme, jak nakonfigurovat každý server v clusteru.
Konfigurace prvního serveru
Nejprve se přihlaste k prvnímu serveru a vytvořte konfigurační soubor Galera pomocí následujícího příkazu:
nano /etc/mysql/conf.d/galera.cnf
Přidejte následující řádky (ujistěte se, že zadáváte vlastní IP adresy serveru):
[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Konfigurace poskytovatele Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smmster_address_cluster_cluster_name=libgalera_smmlerwrepgalup "gcomm://192.168.0.101,192.168.0.102,192.168.0.103"# Konfigurace synchronizace Galerawsrep_sst_method=rsync# Galera Node Configurationwsrep_node_address="192.168.0.10>name"192.168.0.10>Po dokončení uložte a zavřete soubor. Dále můžete pokračovat na druhý server.
Konfigurace druhého serveru
Dále se přihlaste k druhému serveru a vytvořte konfigurační soubor Galera pomocí následujícího příkazu:
nano /etc/mysql/conf.d/galera.cnfPřidejte následující řádky:
[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Konfigurace poskytovatele Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smmster_address_cluster_cluster_name=libgalera_smmlerwrepgalup "gcomm://192.168.0.101,192.168.0.102,192.168.0.103"# Konfigurace synchronizace Galerawsrep_sst_method=rsync# Galera Node Configurationwsrep_node_address="192.162"wsrep_server_node0.10>namePo dokončení uložte a zavřete soubor. Dále můžete pokračovat na třetí server.
Konfigurace třetího serveru
Dále se přihlaste ke třetímu serveru a vytvořte konfigurační soubor Galera pomocí následujícího příkazu:
nano /etc/mysql/conf.d/galera.cnfPřidejte následující řádky:
[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Konfigurace poskytovatele Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smmster_address_cluster_cluster_name=libgalera_smmlerwrepgalup "gcomm://192.168.0.101,192.168.0.102,192.168.0.103"# Konfigurace synchronizace Galerawsrep_sst_method=rsync# Galera Node Configurationwsrep_node_address="192.1638.0.10>name"Po dokončení uložte a zavřete soubor.
V tuto chvíli jsme nakonfigurovali všechny tři servery tak, aby spolu komunikovaly.
Krok 4 – Inicializujte Galera Cluster
Před spuštěním clusteru budete muset zastavit službu MariaDB na všech serverech.
Spuštěním následujícího příkazu zastavte službu MariaDB na všech serverech.
systemctl stop mariadbDále inicializujte cluster v prvním uzlu pomocí následujícího příkazu:
galera_new_clusterVýše uvedený příkaz spustí cluster a přidá server1 do clusteru.
Můžete to zkontrolovat pomocí následujícího příkazu:
mysql -u root -p -e "ZOBRAZIT STAV LIKE 'wsrep_cluster_size'"Zadejte heslo:Zadejte své root heslo a stiskněte Enter. Měli byste vidět následující výstup:
+--------------------+-------+| Název_proměnné | Hodnota |+--------------------+-------+| wsrep_cluster_size | 1 |+--------------------+-------+Dále přejděte na druhý server a spusťte službu MariaDB:
systemctl start mariadbDále ověřte velikost clusteru pomocí následujícího příkazu:
mysql -u root -p -e "ZOBRAZIT STAV LIKE 'wsrep_cluster_size'"Zadejte heslo:Zadejte své root heslo a stiskněte Enter. Měli byste vidět, že se druhý server připojil ke clusteru.
+--------------------+-------+| Název_proměnné | Hodnota |+--------------------+-------+| wsrep_cluster_size | 2 |+--------------------+-------+Dále přejděte na třetí server a spusťte službu MariaDB:
systemctl start mariadbDále ověřte velikost clusteru pomocí následujícího příkazu:
mysql -u root -p -e "ZOBRAZIT STAV LIKE 'wsrep_cluster_size'"Zadejte heslo:Zadejte své root heslo a stiskněte Enter. Měli byste vidět, že se třetí server připojil ke clusteru.
+--------------------+-------+| Název_proměnné | Hodnota |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+Krok 5 – Test replikace clusteru Galera
Váš cluster Galera je nyní v provozu. Je čas otestovat a zjistit, zda replikace funguje.
Chcete-li tak učinit, vytvořte databázi na prvním serveru a zkontrolujte, zda byla replikována na jiné servery.
Na server1 se přihlaste do prostředí MySQL pomocí následujícího příkazu:
mysql -u root -pPo zobrazení výzvy zadejte heslo uživatele root a poté vytvořte databázi pomocí následujícího příkazu:
vytvoření databáze replikadb;vytvoření databáze mydb;Dále ukončete prostředí MySQL pomocí následujícího příkazu:
exit;Na serveru2 se přihlaste do prostředí MySQL pomocí následujícího příkazu:
mysql -u root -pPo zobrazení výzvy zadejte heslo uživatele root a zkontrolujte, zda databáze existuje.
zobrazit databáze;Měli byste získat následující výstup:
+--------------------+| Databáze |+--------------------+| informační_schéma || mydb || mysql || výkonnostní_schéma || replicadb |+--------------------+Na serveru 3 se přihlaste do prostředí MySQL pomocí následujícího příkazu:
mysql -u root -pPo zobrazení výzvy zadejte heslo uživatele root a zkontrolujte, zda databáze existuje.
zobrazit databáze;Měli byste získat následující výstup:
+--------------------+| Databáze |+--------------------+| informační_schéma || mydb || mysql || výkonnostní_schéma || replicadb |+--------------------+Výše uvedený výstup jasně ukazuje, že replikace funguje správně.
Závěr
Gratulujeme! Úspěšně jste nainstalovali a nakonfigurovali tříuzlový cluster MariaDB Galera na Ubuntu 18.04 VPS. Nyní byste měli mít dostatek znalostí k nastavení clusteru MariaDB Galera v produkčním prostředí. Další informace naleznete v dokumentaci MariaDB Galera.
Linux