Cómo instalar MariaDB Galera Cluster en Ubuntu 16.04

Cómo instalar MariaDB Galera Cluster en Ubuntu 16.04

MariaDB Galera es un cluster de varios maestro para MariaDB. Desde MariaDB 10.1, los paquetes de servidor de MariaDB y MariaDB Galera se han combinado y Galera paquetes y sus dependencias instalados automáticamente al instalar MariaDB. En la actualidad, MariaDB Galera Cluster sólo es compatible con el motor de almacenamiento InnoDB / XtraDB. en MariaDB 10.0 y 5.5, tendrá que descargarlo por separado. MariaDB Galera añade redundancia para la base de datos de un sitio. En Cluster MariaDB Galera, varios servidores de bases de datos interconectadas entre sí y mantener sincronizados.

MariaDB Galera ofrece un montón de características, algunos de ellos son los siguientes:

  1. replicación síncrona.
  2. automático de nodos de unirse.
  3. Activo-activo topología multimaestro.
  4. la replicación paralela verdadera, el nivel de fila.
  5. Leer y escribir escalabilidad, latencias de clientes más pequeños.
  6. nodos fallidos, bajada automática de la agrupación.

En este tutorial, vamos a explicar cómo configurar Cluster MariaDB Galera 10.1 con 3 nodos ejecutan en Ubuntu 16.04 servidor. También vamos a probar la replicación de bases de datos entre todos los nodos.

Requisitos

  • Tres nodos con Ubuntu 16.04 servidor.
  • Nodo1 con la dirección IP estática 192.168.0.102, Nodo2 con la dirección IP estática 192.168.0.103 y Nodo3 con la dirección IP estática 192.168.0.104 configurar en el servidor.
  • usuario no root con la configuración de privilegios sudo en todos los nodos.

Para empezar

Primero, tendrá que actualizar todos los nodos con la versión más reciente. Puede actualizar todos ellos con el siguiente comando:

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

Siguiente, reiniciar todos los nodos para aplicar estos cambios. Entonces, iniciar sesión con el usuario sudo y proceder con el paso siguiente.

Instalar MariaDB Galera

MariaDB paquetes de servidor y MariaDB Galera Server se combinan en la versión MariaDB 10.1. De forma predeterminada, MariaDB 10.1 No está disponible en los repositorios de Ubuntu por defecto, por lo que tendrá que añadir el repositorio MariaDB en todos los nodos.

Primero, añadir la clave del repositorio MariaDB con el siguiente comando:

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

Siguiente, añadir el repositorio y actualizar la caché de APT con el siguiente comando:

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

Una vez que el depósito se actualiza, MariaDB instalar con el siguiente comando:

sudo apt-get install MariaDB-servidor -y rsync

El comando anterior se instalará con MariaDB Galera y varias dependencias. Las partes Galera permanecen latentes hasta que esté configurado, como un motor de plugin o almacenamiento. Una vez que el MariaDB está instalado en todos los nodos, se puede proceder a asegurar MariaDB.

Por defecto no se asegura la instalación de MariaDB, usted va a necesitar garantizar la instalación de MariaDB. Puede hacerlo ejecutando el script mysql_secure_installation:

sudo mysql_secure_installation

En este proceso, se le pedirá contraseña de root, quitar los usuarios anónimos, no permitir acceso root remotamente y quitar base de datos de prueba. Contestar todas las preguntas como se muestra a continuación:

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 vez que el MariaDB está asegurado en todos los nodos, puede proceder al siguiente paso.

MariaDB instalación de clúster en el nodo 1

Primero, ir al nodo 1 y crear un archivo de configuración para Galera. De forma predeterminada, MariaDB lee la configuración del directorio /etc/mysql/conf.d/. Para hacerlo, Ejecute el siguiente comando:

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

Agregue las líneas siguientes:

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

Guarde el archivo cuando haya terminado.

Nota: 192.168.0.102 es la dirección IP del nodo 1

Añadir el nodo 2 en el clúster Galera

Siguiente, ir al nodo 2 y crear un archivo de configuración de Galera:

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

Agregue las líneas siguientes:

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

Guarde el archivo cuando haya terminado.

Nota: 192.168.0.103 es la dirección IP del nodo 2.

Añadir Nodo3 en el clúster Galera

Siguiente, ir a la Nodo3 y crear un archivo de configuración de Galera:

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

Agregue las líneas siguientes:

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

Guarde el archivo cuando haya terminado.

Nota: 192.168.0.104 es la dirección IP del Nodo3.

Configurar Firewall

Galera Cluster utiliza cuatro puertos 3306 para la conexión de cliente MySQL, 4444 para la transferencia de estado instantáneas, 4567 Galera para el tráfico de replicación de clústeres y 4568 para la transferencia incremental Estado. Por lo que necesitará para permitir que todos estos puertos utilizando el servidor de seguridad UFW. Usted puede hacer esto mediante la ejecución del comando siguiente en todos los nodos:

Primero, activar el cortafuegos UFW con el siguiente comando:

sudo ufw enable

Siguiente, permitir que todos los puertos con el siguiente comando:

sudo permite UFW 3306 / tcp
sudo permite UFW 4444 / tcp
sudo permite UFW 4567 / tcp
sudo permite UFW 4568 / tcp
sudo permite UFW 4567 / UDP

A continuación, puede comprobar el estado del servidor de seguridad con el siguiente comando:

sudo ufw status

Una vez que el servidor de seguridad UFW está configurado en todos los nodos, puede proceder al siguiente paso.

Iniciar Cluster MariaDB Galera

Después de configurar correctamente todos los nodos, ir al nodo 1 y comenzar Cluster Galera.

Antes de Galera se puede iniciar, es necesario asegurarse de que el servicio MariaDB se detiene en todos los nodos.

Ejecute el siguiente comando en todos los nodos:

sudo systemctl detener mysql

Ahora, iniciar el clúster Galera en el nodo 1 con el siguiente comando:

sudo galera_new_cluster

Ahora, comprobar si el clúster está funcionando o no con el siguiente comando:

MySQL -u root -p -e “estado de espectáculo como ‘wsrep_cluster_size'”

Si todo va bien debería ver el siguiente resultado:

+--------------------+-------+
| variable_name | valor |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

En el nodo 2, iniciar el servicio MariaDB:

sudo systemctl start mysql

Puede comprobar el estado del servicio de MariaDB si está funcionando o no con el siguiente comando:

sudo systemctl estado mysql

Si todo está bien, debería ver la siguiente salida:

?? 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-entorno _WSREP_START_POSITION (código = Exited, status=0/SUCCESS)
  Process: 713 ExecStartPost = / etc / mysql / debian-inicio (código = Exited, 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-entorno _WSREP_START_POSITION (código = Exited, status=0/SUCCESS)
  Process: 514 ExecStartPre = / usr / bin / -m instalar 755 -o mysql -g raíz -d / var / run / mysqld (código = Exited, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (límite: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10: 11: 11 debian systemd [1]: Inicio del servidor de base de datos MariaDB ...
Sep 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]: servidor de base de datos MariaDB Iniciado.

Ahora, el segundo nodo debería haber ligado automáticamente al clúster. Se puede comprobar que con el siguiente comando:

MySQL -u root -p -e “estado de espectáculo como ‘wsrep_cluster_size'”

Si todo funciona bien, el tamaño del clúster debe ajustarse a dos:

+--------------------+-------+
| variable_name | valor |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Por Nodo3, iniciar el servicio MariaDB:

sudo systemctl start mysql
MySQL -u root -p -e “estado de espectáculo como ‘wsrep_cluster_size'”

Si todo funciona bien, el tamaño del clúster debe ajustarse a tres:

+--------------------+-------+
| variable_name | valor |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Usted sectorial se está aplicando y comunicarse entre sí.

La replicación de bases de datos de prueba

Ahora, todos los nodos están en línea, es el momento de probar la replicación de bases de datos a través del clúster Galera. Vamos a empezar por la creación de una base de datos en el nodo 1 y comprobar si se replica en todos los nodos.

Primero, iniciar sesión en la consola MariaDB con el siguiente comando:

MySQL -u root -p

Introduzca su contraseña de root y crear una base de datos con el nombre TEST_DB:

MariaDB [(ninguno)]> TEST_DB crear la base de datos;
MariaDB [(ninguno)]> Mostrar bases de datos;

+--------------------+
| Base de datos |
+--------------------+
| TEST_DB |
+--------------------+

Ahora ve a la Nodo2 y Nodo3, a continuación, comprobar la replicación está funcionando o no:

MySQL -u root -p
MariaDB [(ninguno)]> Mostrar bases de datos;

+--------------------+
| Base de datos |
+--------------------+
| TEST_DB |
+--------------------+

¡Felicitaciones! que haya instalado y configurado MariaDB Galera Cluster en Ubuntu con éxito 16.04 servidor.

Conclusión

Espero que tiene ahora el conocimiento suficiente para instalar y configurar MariaDB Galera Cluster en Ubuntu 16.04. Ahora puede fácilmente escalables hasta varios, o incluso decenas, nodos de distintas. Si tiene cualquier duda o consulta más, a continuación, consulte el enlace Galera Cluster Doc

Fuente