GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare MariaDB Galera Cluster su Ubuntu 20.04

Il bilanciamento del carico e il clustering sono molto importanti in un ambiente di produzione per ottenere un'elevata disponibilità per il sistema di database. MariaDB Galera Cluster fornisce una soluzione di clustering multi-master e supporta i motori di archiviazione XtraDB/InnoDB. Un cluster multimaster consente la lettura e la scrittura su qualsiasi nodo del cluster. Se modifichi i dati su qualsiasi nodo, vengono replicati su tutti gli altri nodi. Il cluster Galera supporta anche ambienti cloud e WAN per creare un cluster distribuito tra paesi e continenti.

In questo post, mostreremo come configurare un cluster MariaDB Galera a tre nodi su un server Ubuntu 20.04.

Prerequisiti

  • Tre server che eseguono Ubuntu 20.04.
  • Sul server è configurata una password di root.

Per iniziare

Prima di iniziare, dovrai aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli usando il seguente comando:

apt-get update -y

Una volta aggiornato il tuo server, puoi procedere al passaggio successivo.

Installa il server MariaDB

Innanzitutto, dovrai installare il server MariaDB su tutti i nodi. Puoi installarlo eseguendo il seguente comando:

apt-get install mariadb-server -y

Una volta terminata l'installazione, avvia il servizio MariaDB e abilita l'avvio al riavvio del sistema:

systemctl start mariadb
systemctl status mariadb

Successivamente, dovrai proteggere l'installazione di MariaDB e impostare una password root di MariaDB su ciascun nodo. Puoi farlo con il seguente comando:

mysql_secure_installation

Ti verrà chiesto di impostare una password di root MariaDB come mostrato di seguito:

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

Una volta che il tuo server MariaDB è protetto, puoi procedere al passaggio successivo.

Configura Cluster Galera

Successivamente, dovrai creare un file di configurazione Galera su ciascun nodo in modo che ogni nodo possa comunicare tra loro.

Sul primo nodo, crea un file galera.cnf usando il seguente comando:

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

Aggiungi le seguenti righe:

[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"

Salva e chiudi il file quando hai finito.

Sul secondo nodo, crea un file galera.cnf usando il seguente comando:

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

Aggiungi le seguenti righe:

[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"

Salva e chiudi il file quando hai finito.

Sul terzo nodo, crea un file galera.cnf usando il seguente comando:

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

Aggiungi le seguenti righe:

[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"

Salva e chiudi il file quando hai finito.

Inizializza il cluster Galera

A questo punto, tutti i nodi sono configurati per comunicare tra loro.

Successivamente, dovrai interrompere il servizio MariaDB su tutti i nodi. Puoi eseguire il seguente comando per interrompere il servizio MariaDB:

systemctl stop mariadb

Sul primo nodo, inizializza il cluster MariaDB Galera con il comando seguente:

galera_new_cluster

Ora controlla lo stato del cluster con il seguente comando:

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

Dovresti vedere il seguente output:

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

Sul secondo nodo, avvia il servizio MariaDB con il seguente comando:

systemctl start mariadb

Quindi, controlla lo stato del cluster MariaDB Galera con il seguente comando:

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

Dovresti vedere il seguente output:

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

Sul terzo nodo, avvia il servizio MariaDB con il seguente comando:

systemctl start mariadb

Quindi, controlla lo stato del cluster MariaDB Galera con il seguente comando:

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

Dovresti vedere il seguente output:

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

A questo punto, il cluster MariaDB Galera viene inizializzato. Ora puoi procedere al passaggio successivo.

Verifica replica cluster

Successivamente, dovrai verificare se la replica funziona o meno.

Sul Primo nodo, connettiti a MariaDB con il seguente comando:

mysql -u root -p

Una volta connesso, crea un database con il seguente comando:

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

Quindi, esci da MariaDB con il seguente comando:

MariaDB [(none)]> exit;

Quindi, vai al secondo nodo e accedi a MariaDB con il seguente comando:

mysql -u root -p

Quindi, esegui il comando seguente per mostrare tutti i database:

MariaDB [(none)]> show databases;

Dovresti vedere che entrambi i database che abbiamo creato sul primo nodo vengono replicati sul secondo nodo:

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

Quindi, vai al terzo nodo e accedi a MariaDB con il seguente comando:

mysql -u root -p

Quindi, esegui il comando seguente per mostrare tutti i database:

MariaDB [(none)]> show databases;

Dovresti vedere che entrambi i database che abbiamo creato sul primo nodo vengono replicati sul terzo nodo:

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

Conclusione

Nella guida sopra, abbiamo imparato come configurare un cluster MariaDB Galera a tre nodi sul server Ubuntu 20.04. Ora puoi aggiungere facilmente più nodi al cluster MariaDB Galera. Sentiti libero di chiedermi se hai domande.


Ubuntu
  1. Come installare MariaDB 10.4 su Ubuntu 18.04

  2. Come installare MariaDB Galera Cluster su Ubuntu 16.04

  3. Come configurare HAProxy in Ubuntu 16.04

  4. Come configurare UFW Firewall su Ubuntu 18.04

  5. Come installare e configurare MariaDB Galera Cluster su Ubuntu 18.04

Come impostare la replica CouchDB su Ubuntu 16.04

Come configurare MariaDB Galera Cluster con HAproxy su CentOS 7

Come installare MariaDB su Ubuntu 18.04 / Ubuntu 16.04

Come configurare OpenVPN su Ubuntu Server

Come installare MariaDB su Ubuntu 20.04 LTS

Come installare MariaDB su Ubuntu 16.04