GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit MariaDB Galera Cluster na Ubuntu 20.04

Vyvažování zátěže a klastrování jsou v produkčním prostředí velmi důležité pro dosažení vysoké dostupnosti vašeho databázového systému. MariaDB Galera Cluster poskytuje multimaster clusteringové řešení a podporuje XtraDB/InnoDB storage engine. Multi-master cluster umožňuje čtení a zápis do libovolného uzlu clusteru. Pokud upravíte data na libovolném uzlu, budou replikována do všech ostatních uzlů. Cluster Galera také podporuje cloudová a WAN prostředí k vybudování distribuovaného clusteru napříč zeměmi a kontinenty.

V tomto příspěvku si ukážeme, jak nastavit tříuzlový cluster MariaDB Galera na serveru Ubuntu 20.04.

Předpoklady

  • Tři servery se systémem Ubuntu 20.04.
  • Na serveru je nakonfigurováno heslo uživatele root.

Začínáme

Než začnete, budete muset aktualizovat systémové balíčky na nejnovější verzi. Můžete je aktualizovat pomocí následujícího příkazu:

apt-get update -y

Jakmile je váš server aktualizován, můžete přejít k dalšímu kroku.

Nainstalujte server MariaDB

Nejprve budete muset nainstalovat server MariaDB na všechny uzly. Můžete jej nainstalovat spuštěním následujícího příkazu:

apt-get install mariadb-server -y

Po dokončení instalace spusťte službu MariaDB a povolte jejich spuštění při restartu systému:

systemctl start mariadb
systemctl status mariadb

Dále budete muset zabezpečit instalaci MariaDB a nastavit root heslo MariaDB na každém uzlu. Můžete to udělat pomocí následujícího příkazu:

mysql_secure_installation

Budete požádáni o nastavení rootovského hesla MariaDB, jak je uvedeno níže:

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Jakmile bude váš server MariaDB zabezpečen, můžete přejít k dalšímu kroku.

Konfigurovat cluster Galera

Dále budete muset vytvořit konfigurační soubor Galera na každém uzlu, aby každý uzel mohl mezi sebou komunikovat.

Na prvním uzlu vytvořte soubor galera.cnf pomocí následujícího příkazu:

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

Přidejte následující řádky:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="node1-ip-address"
wsrep_node_name="node1"

Po dokončení uložte a zavřete soubor.

Na druhém uzlu vytvořte soubor galera.cnf pomocí následujícího příkazu:

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

Přidejte následující řádky:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="node2-ip-address"
wsrep_node_name="node2"

Po dokončení uložte a zavřete soubor.

Na třetím uzlu vytvořte soubor galera.cnf pomocí následujícího příkazu:

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

Přidejte následující řádky:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="node3-ip-address"
wsrep_node_name="node3"

Po dokončení uložte a zavřete soubor.

Inicializace clusteru Galera

V tomto okamžiku jsou všechny uzly nakonfigurovány tak, aby spolu komunikovaly.

Dále budete muset zastavit službu MariaDB na všech uzlech. Pro zastavení služby MariaDB můžete spustit následující příkaz:

systemctl stop mariadb

Na prvním uzlu inicializujte cluster MariaDB Galera pomocí následujícího příkazu:

galera_new_cluster

Nyní zkontrolujte stav clusteru pomocí následujícího příkazu:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Měli byste vidět následující výstup:

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Na druhém uzlu spusťte službu MariaDB následujícím příkazem:

systemctl start mariadb

Dále zkontrolujte stav clusteru MariaDB Galera pomocí následujícího příkazu:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Měli byste vidět následující výstup:

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Na třetím uzlu spusťte službu MariaDB následujícím příkazem:

systemctl start mariadb

Dále zkontrolujte stav clusteru MariaDB Galera pomocí následujícího příkazu:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Měli byste vidět následující výstup:

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

V tomto okamžiku je inicializován cluster MariaDB Galera. Nyní můžete přejít k dalšímu kroku.

Ověřit replikaci clusteru

Dále budete muset ověřit, zda replikace funguje nebo ne.

Na prvním uzlu se připojte k MariaDB pomocí následujícího příkazu:

mysql -u root -p

Jakmile budete připojeni, vytvořte databázi pomocí následujícího příkazu:

MariaDB [(none)]> create database db1;
MariaDB [(none)]> create database db2;

Dále ukončete MariaDB pomocí následujícího příkazu:

MariaDB [(none)]> exit;

Dále přejděte do druhého uzlu a přihlaste se do MariaDB pomocí následujícího příkazu:

mysql -u root -p

Dále spusťte následující příkaz pro zobrazení všech databází:

MariaDB [(none)]> show databases;

Měli byste vidět, že obě databáze, které jsme vytvořili na prvním uzlu, jsou replikovány na druhém uzlu:

+--------------------+
| Database           |
+--------------------+
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)

Dále přejděte do třetího uzlu a přihlaste se do MariaDB pomocí následujícího příkazu:

mysql -u root -p

Dále spusťte následující příkaz pro zobrazení všech databází:

MariaDB [(none)]> show databases;

Měli byste vidět, že obě databáze, které jsme vytvořili na prvním uzlu, jsou replikovány na třetím uzlu:

+--------------------+
| Database           |
+--------------------+
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)

Závěr

Ve výše uvedené příručce jsme se naučili, jak nastavit tříuzlový cluster MariaDB Galera na serveru Ubuntu 20.04. Nyní můžete snadno přidat další uzly do clusteru MariaDB Galera. Neváhejte se mě zeptat, pokud máte nějaké otázky.


Ubuntu
  1. Jak nainstalovat MariaDB Galera Cluster na Ubuntu 16.04

  2. Jak nastavit UFW Firewall na Ubuntu 18.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 nastavit HAProxy v Ubuntu 16.04

  1. Jak nainstalovat MariaDB na Ubuntu 20.04

  2. Jak nainstalovat MariaDB v Ubuntu 20.04 LTS

  3. Jak nastavit a nakonfigurovat Docker Swarm Cluster na Ubuntu