LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 3 / 5

Inicio activadoInicio activadoInicio activadoInicio desactivadoInicio desactivado
 

MariaDB es un sistema de gestión de bases de datos relacionales (RDBMS). En general utilizamos solo nodo del servidor de la base de datos para pequeños usos, pero si pensamos en aplicaciones que tienen miles de usuarios en línea a la vez, en esa situación, necesitamos una estructura que sea capaz de soportar esta carga y proporciona una alta disponibilidad. Así que tenemos que agregar varios servidores de bases de datos interconectadas entre sí y mantenerlas sincronizada, para que en caso de que algún servidor se caiga, los otros servidores puede tomar su lugar y proporcionar los servicios a los usuarios.

MariaDB Galera Cluster es un clúster sincronizador multi-master activo-activo de bases de datos MariaDB. Que mantiene todos los nodos sincronizados. Clúster MariaDB Galera ofrece replicación synchronus que siempre es de alta disponibilidad (no hay pérdida de datos cuando cae uno de los nodos, y las réplicas de datos son siempre consistentes). Actualmente sólo es compatible con los motores de almacenamiento XtraDB / InnoDB y disponible para la plataforma Linux.

Este artículo le ayudará a configurar MariaDB Galera Cluster con 3 servidores funcionando con CentOS.

Los detalles de los servidores de clústeres son los siguientes.

  • DB1 Cluster: 192.168.1.10 (Nombre Host: db1 )
  • DB2 Cluster: 192.168.1.20 (Nombre Host: db2 )
  • DB3 Cluster: 192.168.1.30 (Nombre Host: db3 )

Nota: Los pasos 1/2/3 se tienen que hacer en todos los nodos del clúster y los pasos restantes son para el nodo específico.

Paso 1: Añadir Repositorios MariaDB

Crear un repositorio MariaDB /etc/yum.repos.d/mariadb.repo usando siguientes contenidos para su sistema. Estos repositorio funcionarán en sistemas CentOS 6.x, Para otro sistema utilizar herramienta de generación de repositorio y añadir a su sistema.

Para CentOS 6 - 64 bits

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Para CentOS 6 - 32 bits

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Paso 2: Instale MariaDB y Galera

Antes de instalar los paquetes del cluster MariaDB Galera, eliminar previamente cualquier MySQL existente o paquetes MariaDB instalados en el sistema.

Después utilice los comandos siguiente para instalar en todos los nodos.

# yum install MariaDB-Galera-server MariaDB-client galera

Paso 3: Configuración inicial MariaDB

Después de instalar correctamente los paquetes en los pasos anteriores, hay que hacer algunas configuraciones iniciales en MariaDB. Utilice el siguiente comando y siga las instrucciones que aparecen en todos los nodos del clúster. Si le solicitan que identifique la contraseña de root, hágalo también.

# mysql_secure_installation
# service mysql start

Después de que crear un usuario en MariaDB en todos los nodos, que pueden acceder a la base de datos de la red en clúster.

# mysql -u root -p

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Detener el servicio MariaDB antes de iniciar la configuración del clúster

# service mysql stop

Paso 4: Configuración de clúster Setup en DB1

Permite la configuración de inicio de clúster MariaDB Galera de servidor DB1. Editar el archivo de configuración del servidor MariaDB y agregar valores siguientes en la sección [MariaDB].

[root@db1 ~]# vim /etc/my.cnf.d/server.cnf
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1.20,192.168.1.30
wsrep_cluster_name='cluster1'
wsrep_node_address='192.168.1.10'
wsrep_node_name='db1'
wsrep_sst_method=rsync
wsrep_sst_auth=root:password

Iniciar clúster mediante siguiente comando.

[root@db1 ~]# /etc/init.d/mysql bootstrap
Bootstrapping the clusterStarting MySQL.... SUCCESS!

Si usted optiene cualquier problema durante el inicio comprobar el archivo de registro  /var/lib/mysql/<nombre-del-host>.err  de errores de MariaDB

Paso 5: Añadir DB2 en el Cluster MariaDB

Después de iniciar con éxito clúster en DB1. Iniciar similar configuración en DB2. Editar Archivo de configuración del servidor MariaDB y agregar los valores siguientes en la sección [MariaDB]. Todos los ajustes son similares a DB1 excepto wsrep_node_address, wsrep_cluster_address y wsrep_node_name.

[root@db2 ~]# vim /etc/my.cnf.d/server.cnf

query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1.10,192.168.1.30
wsrep_cluster_name='cluster1'
wsrep_node_address='192.168.1.20'
wsrep_node_name='db2'
wsrep_sst_method=rsync
wsrep_sst_auth=root:password

Iniciar clúster mediante siguiente comando.

[root@db2 ~]# /etc/init.d/mysql start
Starting MySQL..... SUCCESS!

Paso 6: Agregar DB3 en MariaDB Cluster

Este servidor es opcional, si usted quiere solamente dos servidores en clúster, puede ignorar este paso, pero es necesario eliminar la tercera ip del servidor de archivos de configuración de DB1 / DB2. Para añadir este servidor haga los mismos cambios que DB2.

[root@db3 ~]# vim /etc/my.cnf.d/server.cnf

query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1.10,192.168.1.20
wsrep_cluster_name='cluster1'
wsrep_node_address='192.168.1.30'
wsrep_node_name='db2'
wsrep_sst_method=rsync
wsrep_sst_auth=root:password

Iniciar clúster mediante siguiente comando.

[root@db3 ~]# /etc/init.d/mysql start
Starting MySQL..... SUCCESS!

Paso 7: Configuración de la prueba MariaDB Galera Cluster

En esta etapa de la configuración del clúster se ha terminado y funciona correctamente. Ahora puede probar la configuración del clúster mediante la creación de bases de datos y tablas en cualquier servidor en clúster, se replicará inmediatamente a todos los servidores en clúster.

Ejemplo:

Primero:

mysql -u root -p
(Ya dentro de MariaDB (cualquiera, por ejemplo db1) )
show databases;
+----------------------+
| Database             |
+----------------------+
| information_schema   |
| mysql                |
| performance_schema   |
+----------------------+
create database linuxparty;

show databases;

+----------------------+
| Database             |
+----------------------+
| information_schema   |
| mysql                |
| performance_schema   |
| linuxparty     |
+----------------------+

Segundo:

(Ya dentro de MariaDB db2)
show databases;

+----------------------+
| Database             |
+----------------------+
| information_schema   |
| mysql                |
| performance_schema   |
| linuxparty     |
+----------------------+

Tercero:

(Ya dentro de MariaDB db3)
show databases;
+----------------------+
| Database             |
+----------------------+
| information_schema   |
| mysql                |
| performance_schema   |
| linuxparty      |
+----------------------+

Comentarios  

# carlos 13-10-2014 02:51
Me funciona bien, pero no sincroniza los registros que se encuentra en las tablas, de resto bien
# TecnoloMon 16-10-2014 20:01
Debes de asegurarte de tener "galera" instalado y el paquete rsync.

Además de tener correcta la configuración.
# Alfredo Albor 05-11-2014 18:58
Me marca un error al poner: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
Me marca el error
ERROR 1045 (28000): Access denied for user 'root'@'localho st' (using password: NO)
:sigh:
# Guanderful 05-11-2014 19:56
Cito a Alfredo Albor:
Me marca un error al poner: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
Me marca el error
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
:sigh:


'password' debe ser el mismo password con el que te identifiques.

Si no, debes ver:
linuxparty.es/index.php/7198-solucionar-cuando-no-puedo-entrar-en-mi-nuevo-phpmyadmin

Básicamente los pasos son:
(desde Linux)

$ mysql -u root -p

(Ahora dentro de MySQL escribes, use mysql, para utilizar la Base de Datos mysql)

mysql> use mysql;

(Finalmente, cambios el password y/o permisos al usario que fuera)

mysql> update user set password=PASSWO RD("rootpasswor d") where User='root';

(Finalmente, recargas los privilegios)

mysql> flush privileges;
mysql> quit

No estás registrado para postear comentarios