GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat MariaDB Galera Cluster na Ubuntu 16.04

MariaDB Galera je multimaster cluster pro MariaDB. Od MariaDB 10.1 byly balíčky MariaDB Server a MariaDB Galera Server zkombinovány a balíčky Galera a jejich závislosti se instalují automaticky při instalaci MariaDB. V současné době MariaDB Galera Cluster podporuje pouze úložiště InnoDB/XtraDB. V MariaDB 10.0 a 5.5 si ji budete muset stáhnout samostatně. MariaDB Galera přidává redundanci pro databázi webu. V MariaDB Galera Cluster je více databázových serverů vzájemně propojeno a synchronizováno.

MariaDB Galera poskytuje spoustu funkcí, některé z nich jsou uvedeny níže:

  1. Synchronní replikace.
  2. Automatické spojení uzlů.
  3. Aktivní-aktivní multi-master topologie.
  4. Opravdová paralelní replikace na úrovni řádků.
  5. Škálovatelnost čtení a zápisu, menší latence klientů.
  6. Nezdařené uzly, automatické vyřazení z clusteru.

V tomto tutoriálu vysvětlíme, jak nastavit MariaDB Galera Cluster 10.1 se 3 uzly běžícími na serveru Ubuntu 16.04. Budeme také testovat replikaci databáze mezi všemi uzly.

Požadavky

  • Tři uzly se serverem Ubuntu 16.04.
  • Uzel1 se statickou IP adresou 192.168.0.102, Uzel2 se statickou IP adresou 192.168.0.103 a Uzel3 se statickou IP adresou 192.168.0.104 konfigurujte na vašem serveru.
  • Uživatel bez oprávnění root s oprávněními sudo nastavenými na všech uzlech.

Začínáme

Nejprve budete muset aktualizovat všechny uzly na nejnovější verzi. Všechny je můžete aktualizovat pomocí následujícího příkazu:

sudo apt-get update -y
sudo apt-get upgrade -y

Poté restartujte všechny uzly, aby se tyto změny uplatnily. Poté se přihlaste jako uživatel sudo a přejděte k dalšímu kroku.

Nainstalovat MariaDB Galera

Balíčky MariaDB Server a MariaDB Galera Server jsou kombinovány ve verzi MariaDB 10.1. Ve výchozím nastavení není MariaDB 10.1 k dispozici ve výchozích úložištích Ubuntu, takže budete muset přidat úložiště MariaDB do všech uzlů.

Nejprve přidejte klíč úložiště MariaDB pomocí následujícího příkazu:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Dále přidejte úložiště a aktualizujte mezipaměť APT pomocí následujícího příkazu:

sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main'
sudo apt-get update - y

Jakmile je úložiště aktualizováno, nainstalujte MariaDB pomocí následujícího příkazu:

sudo apt-get install mariadb-server rsync -y

Výše uvedený příkaz nainstaluje MariaDB s Galerou a několika závislostmi. Díly Galera zůstávají nečinné, dokud nejsou nakonfigurovány, jako plugin nebo úložný modul. Jakmile je MariaDB nainstalována na všech uzlech, můžete pokračovat v zabezpečení MariaDB.

Ve výchozím nastavení není instalace MariaDB zabezpečena, takže budete muset instalaci MariaDB zabezpečit. Můžete to provést spuštěním skriptu mysql_secure_installation:

sudo mysql_secure_installation

V tomto procesu budete požádáni o nastavení hesla uživatele root, odebrání anonymních uživatelů, zakázání vzdáleného přihlášení uživatele root a odstranění testovací databáze. Odpovězte na všechny otázky, jak je uvedeno níže:

Zadejte aktuální heslo pro uživatele root (zadejte pro žádné):Změnit heslo uživatele root? [A/n] nOdebrat anonymní uživatele? [A/n] YZakázat vzdálené přihlášení root? [A/N] YOdebrat testovací databázi a získat k ní přístup? [A/n] YNačíst nyní tabulky oprávnění? [A/n] A

Jakmile je MariaDB zabezpečena na všech uzlech, můžete přejít k dalšímu kroku.

Nastavení klastru MariaDB na Node1

Nejprve přejděte na Node1 a vytvořte konfigurační soubor pro Galera. Ve výchozím nastavení MariaDB čte konfiguraci z adresáře /etc/mysql/conf.d/. Chcete-li tak učinit, spusťte následující příkaz:

sudo nano /etc/mysql/conf.d/galera.cnf

Př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_dress_cluster_cluster_name=libgalera_smmlerwpgalup "gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Konfigurace synchronizace Galerawsrep_sst_method=rsync# Konfigurace uzlu Galerywsrep_node_address="192.162"wsrep_10>name 

Až budete hotovi, uložte soubor.

Poznámka: 192.168.0.102 je IP adresa uzlu 1

Přidat Node2 do Galera Cluster

Dále přejděte na Node2 a vytvořte konfigurační soubor pro Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Př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_dress_cluster_cluster_name=libgalera_smmlerwpgalup "gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Konfigurace synchronizace Galerawsrep_sst_method=rsync# Konfigurace uzlu Galerawsrep_node_address="192.1638.0.10>name"192.1638.0.10> 

Až budete hotovi, uložte soubor.

Poznámka: 192.168.0.103 je IP adresa uzlu 2.

Přidat Node3 do Galera Cluster

Dále přejděte na Node3 a vytvořte konfigurační soubor pro Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Př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_dress_cluster_cluster_name=libgalera_smmlerwpgalup "gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Konfigurace synchronizace Galerawsrep_sst_method=rsync# Konfigurace uzlu Galerawsrep_node_address="192.164"3node_0.10>Name 

Až budete hotovi, uložte soubor.

Poznámka: 192.168.0.104 je IP adresa uzlu 3.

Konfigurovat bránu firewall

Galera Cluster používá čtyři porty 3306 pro připojení klienta MySQL, 4444 pro State Snapshot Transfer, 4567 pro provoz replikace Galera Cluster a 4568 pro Incremental State Transfer. Budete tedy muset povolit všechny tyto porty pomocí brány firewall UFW. Můžete to provést spuštěním následujícího příkazu na všech uzlech:

Nejprve povolte UFW firewall pomocí následujícího příkazu:

povolit sudo ufw

Dále povolte všechny porty pomocí následujícího příkazu:

sudo ufw povolit 3306/tcp
sudo ufw povolit 4444/tcp
sudo ufw povolit 4567/tcp
sudo ufw povolit 4568/tcp
sudo ufw povolit 4567/udp

Poté můžete zkontrolovat stav brány firewall pomocí následujícího příkazu:

stav sudo ufw

Jakmile je UFW firewall nakonfigurován na všech uzlech, můžete přejít k dalšímu kroku.

Spustit MariaDB Galera Cluster

Po úspěšné konfiguraci všech uzlů přejděte na Node1 a spusťte Galera Cluster.

Než bude možné spustit Galera, musíte zajistit, aby byla služba MariaDB zastavena na všech uzlech.

Spusťte následující příkaz na všech uzlech:

sudo systemctl stop mysql

Nyní spusťte Galera Cluster na Node1 následujícím příkazem:

sudo galera_new_cluster

Nyní zkontrolujte, zda cluster běží nebo ne, pomocí následujícího příkazu:

mysql -u root -p -e "zobrazit stav jako 'wsrep_cluster_size'"

Pokud je vše v pořádku, měli byste vidět následující výstup:

+--------------------+-------+| Název_proměnné | Hodnota |+--------------------+-------+| wsrep_cluster_size | 1 |+--------------------+-------+

Na Node2 spusťte službu MariaDB:

sudo systemctl spustit mysql

Můžete zkontrolovat stav služby MariaDB, zda funguje nebo ne, pomocí následujícího příkazu:

sudo systemctl status mysql

Pokud je vše v pořádku, měli byste vidět následující výstup:

?? mariadb.service - databázový server MariaDB Načteno:načteno (/lib/systemd/system/mariadb.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od ne 2017-09-17 10:11:20 EDT; před 10 minutami Proces:715 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (kód=ukončeno, stav=0/ÚSPĚCH) Proces:713 ExecStartPost=/etc/mysql/debian-start (kód=0 ukončeno, stav=0 /SUCCESS) Proces:545 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] &&VAR=|| VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] &&systemctl set Proces:535 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (kód=ukončeno, stav=0/ÚSPĚCH) Proces:514 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:661 (mysqld) Stav:„Teď se berou vaše požadavky SQL...“ Úkoly:26 (limit:4915) CGroup:/system.slice/mariadb.service ??????661 /usr/sbin/mysqldSep 17 10:11:11 debian systemd[1]:Spouštění databázového serveru MariaDB... 17. září 10:11:15 debian mysqld[661]:2017-09-17 10:11:15 140287134630464 [Poznámka] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb90u1) začínající jako process[10Sep:21d system:system ]:Spuštěn databázový server MariaDB.

Nyní by se váš druhý uzel měl automaticky propojit s clusterem. Můžete to ověřit pomocí následujícího příkazu:

mysql -u root -p -e "zobrazit stav jako 'wsrep_cluster_size'"

Pokud vše funguje dobře, měla by být velikost clusteru nastavena na dvě:

+--------------------+-------+| Název_proměnné | Hodnota |+--------------------+-------+| wsrep_cluster_size | 2 |+--------------------+-------+

Na Node3 spusťte službu MariaDB:

sudo systemctl start mysql
mysql -u root -p -e "zobrazit stav jako 'wsrep_cluster_size'"

Pokud vše funguje dobře, měla by být velikost clusteru nastavena na tři:

+--------------------+-------+| Název_proměnné | Hodnota |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+

Váš cluster nyní funguje a vzájemně komunikujete.

Test replikace databáze

Nyní, když jsou všechny uzly online, je čas otestovat replikaci databáze napříč Galera Clusterem. Začněme vytvořením databáze na Node1 a zkontrolujeme, zda je replikována na všechny uzly.

Nejprve se přihlaste ke konzoli MariaDb pomocí následujícího příkazu:

mysql -u root -p

Zadejte své root heslo a vytvořte databázi s názvem test_db:

MariaDB [(none)]> vytvořit databázi test_db;
MariaDB [(none)]> zobrazit databáze;
+---------------------+| Databáze |+---------------------+| test_db |+--------------------+

Nyní přejděte na Node2 a Node3 a zkontrolujte, zda replikace funguje nebo ne:

mysql -u root -p
MariaDB [(none)]> zobrazit databáze;
+---------------------+| Databáze |+---------------------+| test_db |+--------------------+

Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali MariaDB Galera Cluster na serveru Ubuntu 16.04.

Závěr

Doufám, že nyní máte dostatek znalostí k instalaci a konfiguraci MariaDB Galera Cluster na Ubuntu 16.04. Nyní můžete snadno škálovat až na několik nebo dokonce desítky různých uzlů. Máte-li jakékoli pochybnosti nebo další dotazy, přejděte na odkaz Galera Cluster Doc


Ubuntu
  1. Jak nastavit MariaDB Galera Cluster na Ubuntu 20.04

  2. Jak nainstalovat LiteCart na Ubuntu 15.04

  3. Jak nainstalovat a nakonfigurovat MariaDB Galera Cluster na Ubuntu 18.04

  1. Jak nainstalovat MariaDB 10.4 na Ubuntu 18.04

  2. Jak nainstalovat MariaDB na Ubuntu 18.04

  3. Jak nainstalovat MariaDB na Ubuntu 20.04

  1. Jak nainstalovat MariaDB v Ubuntu 20.04 LTS

  2. Jak nainstalovat MariaDB na Ubuntu 18.04 / Ubuntu 16.04

  3. Jak nainstalovat MariaDB na Ubuntu 20.04 LTS