Come installare MariaDB Galera Cluster su Ubuntu 16.04

Come installare MariaDB Galera Cluster su Ubuntu 16.04

MariaDB Galera è un cluster multi-master per MariaDB. Dal MariaDB 10.1, i pacchetti MariaDB Server e MariaDB Galera Server sono stati combinati e Galera pacchetti e le relative dipendenze vengono installate automaticamente durante l'installazione di MariaDB. Attualmente, MariaDB Galera Cluster supporta solo il motore di memorizzazione InnoDB / XtraDB. in MariaDB 10.0 e 5.5, è necessario scaricare separatamente. MariaDB Galera aggiunge ridondanza per database di un sito. In Cluster MariaDB Galera, più server di database interconnessi tra loro e mantenere sincronizzati.

MariaDB Galera fornisce un sacco di funzioni, alcuni di essi sono elencati di seguito:

  1. replica sincrona.
  2. nodo automatico unendo.
  3. topologia multi-master active-active.
  4. replica vero parallelo, a livello di riga.
  5. Leggere e scrivere scalabilità, latenze del client più piccoli.
  6. nodi non riusciti, goccia automatico dal cluster.

In questo tutorial, spiegheremo come installare MariaDB Galera Cluster 10.1 con 3 nodi in esecuzione su Ubuntu 16.04 Server. Ci sarà anche verificare la replica del database tra tutti i nodi.

Requisiti

  • Tre nodi che eseguono Ubuntu 16.04 Server.
  • Node1 con indirizzo IP statico 192.168.0.102, Nodo 2 con indirizzo IP statico 192.168.0.103 e Nodo3 con indirizzo IP statico 192.168.0.104 configurare il vostro server.
  • utente non root con l'installazione privilegi sudo su tutti i nodi.

Guida introduttiva

Prima, è necessario aggiornare tutti i nodi con l'ultima versione. È possibile aggiornare tutti con il seguente comando:

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

Prossimo, riavviare tutti i nodi per applicare questi cambiamenti. Quindi, il login con l'utente sudo e procedere alla fase successiva.

Installare MariaDB Galera

pacchetti di MariaDB Server e MariaDB Galera Server vengono combinati nella versione di MariaDB 10.1. Per impostazione predefinita, MariaDB 10.1 non è disponibile nei repository di Ubuntu di default, quindi sarà necessario aggiungere il repository di MariaDB su tutti i nodi.

Prima, aggiungere la chiave repository MariaDB con il seguente comando:

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

Prossimo, aggiungere il repository e aggiornare la cache di APT con il seguente comando:

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

Una volta che il repository viene aggiornato, installare MariaDB con il seguente comando:

sudo apt-get install MariaDB-server rsync -y

Il comando precedente installerà MariaDB con Galera e diverse dipendenze. Le parti Galera restano dormienti fino configurato, come un motore di plug-in o di stoccaggio. Una volta che il MariaDB è installato su tutti i nodi, si può procedere per garantire MariaDB.

Per impostazione predefinita non è assicurata l'installazione MariaDB, quindi sarà necessario per garantire l'installazione di MariaDB. È possibile farlo eseguendo lo script mysql_secure_installation:

sudo mysql_secure_installation

In questo processo, vi verrà chiesto di impostare la password di root, rimuovere gli utenti anonimi, non consentire login di root da remoto e rimuovere database di test. Rispondere alle domande come illustrato di seguito:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
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 MariaDB è fissato su tutti i nodi, è possibile procedere al passaggio successivo.

Setup Cluster MariaDB su Node1

Prima, andare al Nodo 1 e creare un file di configurazione per Galera. Per impostazione predefinita, MariaDB legge la configurazione dalla directory /etc/mysql/conf.d/. Per farlo, eseguire il seguente comando:

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

Aggiungere 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://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

Salvare il file dopo aver terminato.

Nota: 192.168.0.102 è l'indirizzo IP del nodo 1

Aggiungere Node2 su cluster Galera

Prossimo, andare al Nodo 2 e creare un file di configurazione per Galera:

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

Aggiungere 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://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

Salvare il file dopo aver terminato.

Nota: 192.168.0.103 è l'indirizzo IP del nodo 2.

Aggiungere Node3 su cluster Galera

Prossimo, andare al Node3 e creare un file di configurazione per Galera:

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

Aggiungere 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://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

Salvare il file dopo aver terminato.

Nota: 192.168.0.104 è l'indirizzo IP del Nodo3.

Configurare il Firewall

Galera cluster utilizza quattro porte 3306 per la connessione client MySQL, 4444 per Stato Snapshot Transfer, 4567 per Galera traffico di replica cluster e 4568 per il trasferimento incrementale di Stato. Quindi sarà necessario per consentire a tutti queste porte utilizzando il firewall UFW. È possibile farlo eseguendo il seguente comando su tutti i nodi:

Prima, attivare il firewall UFW con il seguente comando:

Abilitare sudo ufw

Prossimo, consentire tutte le porte con il seguente comando:

sudo ufw consentire 3306 / tcp
sudo ufw consentire 4444 / tcp
sudo ufw consentire 4567 / tcp
sudo ufw consentire 4568 / tcp
sudo ufw consentire 4567 / UDP

È quindi possibile controllare lo stato del firewall con il seguente comando:

sudo ufw status

Una volta che il firewall UFW è configurato su tutti i nodi, è possibile procedere al passaggio successivo.

Inizia MariaDB Galera Cluster

Dopo aver configurato con successo tutti i nodi, andare al Nodo 1 e iniziare a Galera Cluster.

Prima di Galera può iniziare, è necessario assicurarsi che il servizio viene arrestato MariaDB su tutti i nodi.

Eseguire il seguente comando su tutti i nodi:

sudo systemctl stop mysql

Ora, avviare il cluster Galera sulla Node1 con il seguente comando:

sudo galera_new_cluster

Ora, verificare se il cluster è in esecuzione o non con il seguente comando:

mysql -u radice -p -e “Stato show come ‘wsrep_cluster_size'”

Se tutto va bene si dovrebbe vedere il seguente output:

+--------------------+-------+
| nome_variabile | valore |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Sul nodo 2, avviare il servizio MariaDB:

sudo systemctl start mysql

È possibile controllare lo stato del servizio di MariaDB se si sta lavorando o meno con il seguente comando:

sudo systemctl status mysql

Se tutto va bene, si dovrebbe vedere il seguente output:

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / bin / sh -c systemctl unset-ambiente _WSREP_START_POSITION (codice = Uscito, status=0/SUCCESS)
  Process: 713 ExecStartPost = / etc / mysql / debian-start (codice = Uscito, status=0/SUCCESS)
  Process: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [ $? -eq 0 ]   && systemctl set
  Process: 535 ExecStartPre = / bin / sh -c systemctl unset-ambiente _WSREP_START_POSITION (codice = Uscito, status=0/SUCCESS)
  Process: 514 ExecStartPre = / usr / bin / install -m 755 -o mysql -g radice -d / var / run / mysqld (code = Exited, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limite: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10: 11: 11 debian systemd [1]: Avvio di server di database MariaDB ...
Set 17 10: 11: 15 debian mysqld [661]: 2017-09-17 10: 11: 15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10: 11: 20 debian systemd [1]: server di database MariaDB introduttiva.

Ora, il secondo nodo avrebbe dovuto automaticamente collegato al cluster. È possibile verificare che con il seguente comando:

mysql -u radice -p -e “Stato show come ‘wsrep_cluster_size'”

Se tutto funziona bene, la dimensione dei cluster deve essere impostato su due:

+--------------------+-------+
| nome_variabile | valore |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Sulla Node3, avviare il servizio MariaDB:

sudo systemctl start mysql
mysql -u radice -p -e “Stato show come ‘wsrep_cluster_size'”

Se tutto funziona bene, la dimensione dei cluster deve essere impostato su tre:

+--------------------+-------+
| nome_variabile | valore |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

È Cluster è ora lavorare e comunicare tra di loro.

Verificare la replica del database

Ora, tutti i nodi sono on-line, è il momento di verificare la replica del database all'interno del cluster Galera. Cominciamo con la creazione di una banca dati sulle Node1 e verificare se è replicato su tutti i nodi.

Prima, accedere alla sezione comandi di MariaDB con il seguente comando:

mysql -u root -p

Inserire la password di root e creare un database con il nome TEST_DB:

MariaDB [(nessuno)]> creare TEST_DB banca dati;
MariaDB [(nessuno)]> Visualizza database;

+--------------------+
| Database |
+--------------------+
| TEST_DB |
+--------------------+

Ora andate al nodo 2 e Node3, quindi controllare la replicazione funziona o non:

mysql -u root -p
MariaDB [(nessuno)]> Visualizza database;

+--------------------+
| Database |
+--------------------+
| TEST_DB |
+--------------------+

Complimenti! è stato installato e configurato MariaDB Galera cluster su Ubuntu con successo 16.04 Server.

Conclusione

Spero di avere abbastanza ora conoscenze per installare e configurare MariaDB Galera cluster su Ubuntu 16.04. Si può ora facilmente scalato fino a diverse, o anche decine, nodi di distinte. Se avete qualche dubbio o più di query, quindi fare riferimento il link Galera Cluster Doc

Fonte