GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar MariaDB Galera Cluster en Ubuntu 20.04

El equilibrio de carga y la agrupación en clústeres son muy importantes en un entorno de producción para lograr una alta disponibilidad para su sistema de base de datos. MariaDB Galera Cluster proporciona una solución de agrupación en clúster multimaestro y es compatible con los motores de almacenamiento XtraDB/InnoDB. Un clúster multimaestro permite leer y escribir en cualquier nodo del clúster. Si modifica datos en cualquier nodo, se replican en todos los demás nodos. El clúster de Galera también admite entornos de nube y WAN para crear un clúster distribuido en países y continentes.

En esta publicación, mostraremos cómo configurar un clúster MariaDB Galera de tres nodos en el servidor Ubuntu 20.04.

Requisitos

  • Tres servidores con Ubuntu 20.04.
  • Se configura una contraseña raíz en el servidor.

Cómo empezar

Antes de comenzar, deberá actualizar los paquetes de su sistema a la última versión. Puede actualizarlos usando el siguiente comando:

apt-get update -y

Una vez que su servidor esté actualizado, puede continuar con el siguiente paso.

Instalar servidor MariaDB

Primero, deberá instalar el servidor MariaDB en todos los nodos. Puede instalarlo ejecutando el siguiente comando:

apt-get install mariadb-server -y

Una vez finalizada la instalación, inicie el servicio MariaDB y habilítelos para que se inicien al reiniciar el sistema:

systemctl start mariadb
systemctl status mariadb

A continuación, deberá asegurar la instalación de MariaDB y establecer una contraseña raíz de MariaDB en cada nodo. Puedes hacerlo con el siguiente comando:

mysql_secure_installation

Se le pedirá que establezca una contraseña raíz de MariaDB como se muestra a continuación:

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 vez que su servidor MariaDB esté protegido, puede continuar con el siguiente paso.

Configurar clúster de Galera

A continuación, deberá crear un archivo de configuración de Galera en cada nodo para que cada nodo pueda comunicarse entre sí.

En el primer nodo, cree un archivo galera.cnf usando el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

En el segundo nodo, cree un archivo galera.cnf usando el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

En el tercer nodo, cree un archivo galera.cnf usando el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

Inicializar el clúster de Galera

En este punto, todos los nodos están configurados para comunicarse entre sí.

A continuación, deberá detener el servicio MariaDB en todos los nodos. Puede ejecutar el siguiente comando para detener el servicio MariaDB:

systemctl stop mariadb

En el primer nodo, inicialice el clúster MariaDB Galera con el siguiente comando:

galera_new_cluster

Ahora, verifique el estado del clúster con el siguiente comando:

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

Debería ver el siguiente resultado:

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

En el segundo nodo, inicie el servicio MariaDB con el siguiente comando:

systemctl start mariadb

A continuación, verifique el estado del clúster de MariaDB Galera con el siguiente comando:

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

Debería ver el siguiente resultado:

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

En el tercer nodo, inicie el servicio MariaDB con el siguiente comando:

systemctl start mariadb

A continuación, verifique el estado del clúster de MariaDB Galera con el siguiente comando:

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

Debería ver el siguiente resultado:

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

En este punto, se inicializa el clúster MariaDB Galera. Ahora puede continuar con el siguiente paso.

Verificar replicación de clúster

A continuación, deberá verificar si la replicación funciona o no.

En el primer nodo, conéctese a MariaDB con el siguiente comando:

mysql -u root -p

Una vez que esté conectado, cree alguna base de datos con el siguiente comando:

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

A continuación, salga de MariaDB con el siguiente comando:

MariaDB [(none)]> exit;

A continuación, vaya al segundo nodo e inicie sesión en MariaDB con el siguiente comando:

mysql -u root -p

A continuación, ejecute el siguiente comando para mostrar todas las bases de datos:

MariaDB [(none)]> show databases;

Debería ver que ambas bases de datos que hemos creado en el primer nodo se replican en el segundo nodo:

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

A continuación, vaya al tercer nodo e inicie sesión en MariaDB con el siguiente comando:

mysql -u root -p

A continuación, ejecute el siguiente comando para mostrar todas las bases de datos:

MariaDB [(none)]> show databases;

Debería ver que ambas bases de datos que hemos creado en el primer nodo se replican en el tercer nodo:

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

Conclusión

En la guía anterior, aprendimos cómo configurar un clúster MariaDB Galera de tres nodos en el servidor Ubuntu 20.04. Ahora puede agregar más nodos al clúster de MariaDB Galera fácilmente. Siéntase libre de preguntarme si tiene alguna pregunta.


Ubuntu
  1. Cómo instalar MariaDB 10.4 en Ubuntu 18.04

  2. Cómo instalar MariaDB Galera Cluster en Ubuntu 16.04

  3. Cómo configurar HAProxy en Ubuntu 16.04

  4. Cómo configurar el cortafuegos UFW en Ubuntu 18.04

  5. Cómo instalar y configurar MariaDB Galera Cluster en Ubuntu 18.04

Cómo configurar la replicación de CouchDB en Ubuntu 16.04

Cómo configurar MariaDB Galera Cluster con HAproxy en CentOS 7

Cómo instalar MariaDB en Ubuntu 18.04 / Ubuntu 16.04

Cómo configurar OpenVPN en Ubuntu Server

Cómo instalar MariaDB en Ubuntu 20.04 LTS

Cómo instalar MariaDB en Ubuntu 16.04