Cómo configurar la replicación MariaDB (maestro-esclavo) en CentOS/RHEL 7 y Debian 8/9

Cómo configurar la replicación MariaDB (maestro-esclavo) en CentOS/RHEL 7 y Debian 8/9

Incluso cuando algunas personas de TI escuchan la frase “ Replicación de base de datos. , a menudo la asocian con la necesidad de tener varias copias de la misma información para evitar la pérdida de datos en caso de fallas de hardware o datos. corrupción. Si bien eso es cierto hasta cierto punto, la replicación de bases de datos implica mucho más que el concepto común de realizar copias de seguridad de una base de datos y la disponibilidad de datos.

 Replicación maestro-esclavo de MariaDB en CentOS MariaDB Master-Slave Replicación en CentOS Replicación maestro-esclavo MariaDB en CentOS/RHEL 7 y Debian 8/9

Entre otros beneficios de la replicación de base de datos en una configuración maestro-esclavo podemos mencionar:

  1. Las copias de seguridad se pueden realizar en el servidor esclavo sin afectar (y verse afectadas por) las operaciones de escritura en el maestro.
  2. Consume muchos recursos Las operaciones (como el análisis de datos) se pueden realizar en el esclavo sin influir en el rendimiento del maestro.

En este artículo explicaremos cómo configurar la replicación maestro-esclavo en MariaDB 10.1. A diferencia de la replicación clásica, MariaDB introdujo el concepto de ID de transacción global. ( GTID. en v10.0. que permite cambiar un esclavo a conectarse y replicar desde un maestro diferente fácilmente. Además de eso, el estado del esclavo se registra de forma segura (las actualizaciones del estado se realizan en la misma transacción que las actualizaciones de los datos).

Si está buscando Replicación de MySQL. en CentOS/RHEL 6. siga esta guía Configuración de la replicación de MySQL (maestro-esclavo) en CentOS/RHEL 6

Instalación de MariaDB 10.1 en CentOS/RHEL 7 y Debian 8/9

Nuestro entorno de prueba consta de las siguientes máquinas (ambas son CentOS 7. :

Maestro: 192.168.0.18 Esclavo: 192.168. 0.19 freestar.config.enabled_slots.push

Para instalar la última versión de MariaDB, necesitaremos agregar sus repositorios a nuestros servidores. Si está utilizando una versión anterior de MariaDB, digamos 5.5, considere actualizar a la última versión 10.1 usando el artículo a continuación.

  1. Actualice MariaDB 5.5 a MariaDB 10.1

En CentOS/RHEL

Cree un archivo llamado MariaDB.repo dentro de /etc/yum.repos.d. con el siguiente contenido en los sistemas Maestro. y Esclavo. :

# MariaDB 10.1 Lista de repositorios de CentOS-creada 2016-01-23 14:16 UTC # http://mariadb.org/mariadb/repositories/[mariadb] name = MariaDB baseurl = http://yum.mariadb .org/10.1/centos7-amd64 gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck = 1

Guarde el archivo e instale MariaDB en ambos servidores usando yum:

# yum update && yum install MariaDB-server MariaDB-client En Debian/Ubuntu

Agregue la clave para autenticar paquetes y el repositorio MariaDB:

# apt-get install software-properties-common # apt-key adv-recv-keys–keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db # add-apt-repository ‘deb [arch = amd 64, i386] http://mirror.edatel.net.co/mariadb/repo/10.1/ debian jessie. main ‘

Nota. Reemplace la distribución nombre. y nombre en clave. en la línea resaltada arriba.

Instale usando apt-comando get.

# apt-get update # apt-get install mariadb-server Verifique la versión de MariaDB en Master Slave-Server Verifique la versión de MariaDB en Master Slave-Server Verifique la versión de MariaDB en Master Slave-Server

Una vez que haya Una vez instalado MariaDB, ejecute el procedimiento de instalación mysql_secure_installation tanto en el maestro como en el esclavo, configuremos una base de datos de prueba de muestra en la máquina maestra.

Configuración de una base de datos MySQL de muestra en el maestro

Ahora configuraremos en el servidor maestro la base de datos de empleados de https://github.com/datacharmer/test_db. (que proporciona un conjunto de datos de 4. millones de registros repartidos en seis tablas) en dos simples pasos:

Clone el repositorio y utilícelo para importar la base de datos de muestra a su MariaDB instalación:

# git clone https://github.com/datacharmer/test_db # cd test_db # mysql Configuración del servidor MySQL en el maestro

Para configurar el maestro, siga estos pasos:

PASO 1:. Edite el archivo/etc/my.cnf. Debajo de la sección [mysqld], agregue las siguientes cuatro líneas:

log-bin server_id = 1 replicate-do-db = employee bind-address = 192.168.0.18

y reinicie MariaDB:

# systemctl reiniciar mariadb

PASO 2:. Inicie sesión en el servidor MariaDB como root, cree el usuario esclavo y asigne las concesiones necesarias:

MariaDB [(ninguno)]>. CREAR USUARIO ‘esclavo’ @ ‘localhost’ IDENTIFICADO POR ‘SlavePassword’; MariaDB [(none)]>. OTORGAR REPLICACIÓN ESCLAVA EN *. * A esclavo IDENTIFICADO POR ‘SlavePassword’ CON OPCIÓN DE OTORGAMIENTO; MariaDB [(ninguno)]>. PRIVILEGIOS DE FLUSH; MariaDB [(none)]>. MESAS DE DESCARGA CON BLOQUEO DE LECTURA; MariaDB [(ninguno)]>. MOSTRAR ESTADO MAESTRO;

El comando último. ( SHOW MASTER STATUS. devuelve la posición actual en el registro binario (las coordenadas exactas que indican exactamente en qué punto el esclavo debe comenzar a replicar:

 Configurar MySQL Master para Replicación  Configurar MySQL Master para replicación Configurar MySQL Master para replicación

PASO 3:. Salga del indicador MariaDB (con exit;) y use el siguiente comando para tomar una instantánea de la base de datos de los empleados. Cuando presione Enter. se le solicitará ed para escribir la contraseña de root que configuró anteriormente a través de mysql_secure_installation:

# mysqldump-u root-p employee> employee-dump.sql

Una vez completado el volcado, conéctese al servidor de la base de datos nuevamente para desbloquear el tablas y luego salir:

MariaDB [(none)]>. DESBLOQUEAR TABLAS; MariaDB [(none)]>. salir;

PASO 4:. Copie el volcado al esclavo:

# scp employee-dump.sql [email protected]:/root/

PASO 5:. Ejecute el procedimiento mysql_upgrade para actualizar las tablas del sistema (se le pedirá que ingrese la contraseña raíz de MariaDB):

# mysql_upgrade-u root-p

PASO 6:. Permita que servicio de base de datos a través del firewall:

# firewall-cmd–add-service = mysql # firewall-cmd–add-service = mysql–permanent # firewall-cmd–reload

Ahora configuremos el esclavo .

Configuración del servidor MySQL en esclavo

Para configurar el esclavo, siga estos pasos:

PASO 1:. Cree la cuenta para realizar las tareas de replicación. Conéctese al servidor MariaDB local con:

# mysql-u root –p

e ingrese la contraseña que configuró anteriormente.

PASO 2:. Una vez conectado al servidor de la base de datos, cree el usuario y una base de datos vacía, y otorgue los permisos:

MariaDB [(none)]>. CREATE DATABASE empleados; MariaDB [(none)]>. OTORGA TODOS LOS PRIVILEGIOS A los empleados. * A ‘esclavo’ @ ‘localhost’ CON OPCIÓN DE OTORGAMIENTO; MariaDB [(ninguno)]>. PRIVILEGIOS DE FLUSH;

PASO 3:. Salga del indicador MariaDB y cargue el volcado creado en el servidor maestro:

# mysql-u root-p employee PASO 4:. Edite el archivo/etc/my.cnf para asignar un ID. de servidor al esclavo en la sección [mysqld]. Tenga en cuenta que debe ser un número entero diferente de 1. ya que usamos 1. en el maestro:

server_id = 2 replicate-do-db = employee

Reinicie el servidor de la base de datos:

# systemctl restart mariadb

PASO 5:. Ejecute el procedimiento mysql_upgrade para actualizar las tablas del sistema (se le pedirá que ingrese la contraseña raíz de MariaDB):

# mysql_upgrade-u root-p

PASO 6:. Una vez que se ha importado el volcado al esclavo, solo quedan unos pocos pasos para comenzar a replicar. Inicie sesión en la base de datos y ejecute los siguientes comandos en el indicador de MariaDB. Preste especial atención a las variables MASTER_LOG_FILE y MASTER_LOG_POS, que deben coincidir con los valores devueltos por SHOW MASTER STATUS. en el PASO 2 de “Configuración del maestro” anterior.

MariaDB [(ninguno)]>. CAMBIAR MAESTRO A MASTER_HOST = ‘192.168.0.18’, MASTER_USER = ‘esclavo’, MASTER_PASSWORD = ‘SlavePassword’, MASTER_PORT = 3306, MASTER_LOG_FILE = ‘master-bin.000001’, MASTER_LOG_POS = 314, MASTER_CONNECT_RETRY = 10, MASTER_USE_GTID = current_pos;

PASO 7:. Inicie el esclavo y verifique su estado sin salir del indicador de MariaDB:

MariaDB [(none)]> EMPEZAR ESCLAVO; MariaDB [(ninguno)]>. MOSTRAR ESTADO DE ESCLAVO \ G;

No es que lo necesite ahora, pero tenga en cuenta que puede detener el esclavo con:

MariaDB [(none)]>. STOP SLAVE;

si MOSTRAR ESTADO DE ESCLAVO \ G; El comando devuelve cualquier error. Utilice esos errores para solucionar problemas y luego ejecute START SLAVE; para probar de nuevo.

Probar la replicación de la base de datos MySQL/MariaDB

Agreguemos un registro a la tabla empleados. en el servidor maestro:

MariaDB [(none)]>. INSERT INTO employee (emp_no, birth_date, first_name, last_name, gender, Hire_date) VALUES (500000, ‘1983-07-12’, ‘Dave ‘,’ Nulo ‘,’ M ‘,’ 2014-12-12 ‘);

Luego verifique que este cambio fue replicado en el esclavo:

MariaDB [(none)]>. USE empleados; MariaDB [(none)]>. SELECCIONAR * DE empleados DONDE emp_no = 500000;  Verifique la replicación de la base de datos MariaDB MySQL  Verifique la replicación de la base de datos MariaDB MySQL Verifique la replicación de la base de datos MariaDB MySQL

Como puede ver, la replicación está funcionando correctamente de maestro a esclavo.

Resumen

En este artículo hemos explicado cómo instalar la última versión de MariaDB en CentOS/RHEL 7. y Debian 8/9, y discutió cómo configurar la replicación maestro-esclavo con GTID. Para obtener más información, es posible que desee consultar la Guía de replicación de MariaDB y no dude en ponerse en contacto con nosotros mediante el formulario a continuación si tiene preguntas o comentarios.