Replicación de Mariadb en Rhel 8/ Centos 8

Replicación de Mariadb en Rhel 8/ Centos 8
Los desastres ocurren, y cuando lo hacen, los datos preciosos pueden ir con el viento, nunca más para recuperarse, y cuando se recuperan, las empresas generalmente gastan hasta millones de dólares para recuperarlo y perder un tiempo valioso que podría haberse gastado en otras operaciones. Y aquí es donde entra el concepto de replicación. La replicación simplemente tiene múltiples copias de una base de datos. La replicación asegura que en cualquier momento, existan copias de copia de seguridad de la base de datos primaria para que en caso de que la base de datos disminuya, los datos aún se pueden recuperar de las bases de datos de copia de seguridad que garantizan redundancia y alta disponibilidad. En este tutorial, aprenderá cómo configurar la replicación de esclavo maestro de mariadb en Centos 8.

Configuración de laboratorio

Nodo maestro - 192.168.43.13
Nodo de esclavos - 192.168.43.252

Paso 1: Instale mariadb en servidores maestros y esclavos

Para empezar, debe instalar mariadb tanto en el maestro como en el esclavo. Así que sigue los pasos a continuación:

Primero, inicie sesión en el servidor maestro y actualice los paquetes del sistema como se muestra:

$ sudo dnf actualización

Después de actualizar con éxito su sistema, ahora continúe e instale mariadb

$ sudo dnf install mariadb-server

Una vez que la instalación es exitosa, puede verificar que MariadB se instale ejecutando el comando:

$ rpm -qa | Grep Mariadb

Para obtener información más detallada, ejecute el comando:

$ rpm -qi mariadb -server

Ahora comience el servicio Mariadb

$ sudo systemctl start mariadb

Además, también puede habilitar el servicio para comenzar automáticamente en cualquier sesión de arranque/reinicio.

$ sudo systemctl habilitar mariadb

Para verificar que el motor de base de datos MariadB esté en funcionamiento, emita el comando:

$ sudo systemctl status mariadb

Perfecto! Mariadb está en funcionamiento como esperábamos.

Tal como están las cosas, MariadB no está asegurada y cualquier usuario puede iniciar sesión en el motor de la base de datos y tener acceso a todas las bases de datos y realizar cambios. Por supuesto, no queremos que eso suceda y asegurar la base de datos debería ser una prioridad. Por lo tanto, necesitamos asegurar el motor de la base de datos estableciendo una contraseña de root. Entonces, ejecute el comando a continuación:

$ sudo mysql_secure_installation

Lo que sigue es un mensaje interactivo que requerirá establecer la contraseña de root de la base de datos y responder algunas preguntas.

Por defecto, MariadB se ejecuta en el puerto 3306. Si está ejecutando un firewall, debe permitir este puerto para que el motor de la base de datos pueda ser accesible para usuarios y servicios externos.

Para abrir el puerto en el firewall, ejecute la siguiente regla de firewall:

$ sudo firewalld-cmd --add-puerto = 3306/tcp --zone = public --permanent

Para que se aplique la regla, recargue el firewall:

$ sudo firewalld-cmd--Reload

Con MariadB instalado y asegurado correctamente en el servidor maestro, repita los mismos pasos en el servidor de esclavos.

Paso 2: Configurar mariadb en el servidor maestro

Necesitamos configurar el demonio mariadb para que nuestro servidor maestro previsto actúe como un servidor en la configuración. Así que abra el archivo de configuración /etc/mi.CNF

$ sudo vim /etc /my.CNF

Agregue la configuración a continuación

[mysqld]
Bind-Address = 192.168.43.13
servidor-id = 1
log_bin = mysql-bin
binlog-format = fila

Guardar y salir del archivo de configuración. Para efectuar los cambios, reinicie el servicio de mariadb.

$ sudo systemctl reiniciar mariadb-server

Paso 3: Configure el servidor de esclavos

Al igual que el servidor maestro, el esclavo debe configurarse para actuar como uno. Así que abra el archivo de configuración como antes:

$ sudo vim /etc /my.CNF

Agregue la configuración a continuación

[mysqld]
Bind-Address = 192.168.43.252
servidor-id = 2
log_bin = mysql-bin
binlog-format = fila

Estar interesado en proporcionar una diferente 'servidor_id'Desde el servidor maestro, que es 2 en este caso. Y al igual que el servidor maestro, el 'bind_address'El parámetro debe apuntar a la dirección IP del esclavo.

Guardar y salir del archivo.

Paso 3: Cree un usuario de replicación en el servidor maestro

Para configurar el esclavo para la replicación, necesitamos regresar al nodo maestro y crear un usuario de replicación. Inicie sesión en el motor de base de datos Mariadb.

$ mysql -u root -p

Primero, detente al usuario de esclavos.

Mariadb [(ninguno)]> parar esclavo;

Crear un usuario de replicación con los comandos mostrados:

Mariadb [(ninguno)]> Said replication Slave en *.* A 'Replica_user' @'192.168.43.252 '
Identificado por 'p@ssword123';
Consulta bien, 0 filas afectadas (0.06 seg)
Mariadb [(ninguno)]> privilegios de descarga;
Consulta bien, 0 filas afectadas (0.04 seg)
Mariadb [(ninguno)]> Tablas de descarga con bloqueo de lectura;
Consulta bien, 0 filas afectadas (0.02 seg)
Mariadb [(ninguno)]> salida;
Consulta bien, 0 filas afectadas (0.02 seg)

A partir de entonces, verifique ese estado del maestro ejecutando:

Mariadb [(ninguno)]> Mostrar estado maestro \ g

Observe cuidadosamente los valores del nombre de archivo y la posición. Luego se utilizarán para configurar el esclavo para la replicación.

De la salida anterior, esto se traduce en:

Archivo: mysql-bin.000001
Posición: 1317

Salga del motor MariadB y cree una copia de respaldo del servidor maestro como se muestra:

$ sudo mysqldump -todas las databasas -u root -p> MasterDatabase.sql

Inicie sesión de regreso a Mariadb y desbloquee las tablas:

Mariadb [(ninguno)]> desbloquear tablas;
Mariadb [(ninguno)]> salida;

Recuerde la copia de copia de seguridad que creamos para la base de datos maestra? Estamos listos para copiarlo en el servidor de esclavos. Así que ejecuta el comando a continuación:

$ SCP MasterDatabase.Root [email protected]:/root/

Paso 4: Configure el esclavo para la replicación

De vuelta en el nodo esclavo, importe el archivo de copia de seguridad que copiamos del maestro al motor Mariadb.

$ mysql -u root -p < masterdatabase.sql

Y luego reinicie el servicio de mariadb

$ systemctl reiniciar mariadb

Ahora inicie sesión en el motor de base de datos Mariadb y configure el esclavo de la siguiente manera:

Mariadb [(ninguno)]> parar esclavo; Mariadb [(ninguno)]> Cambiar maestro a maestro_host = '192.168.43.13 ', maestro_user =' réplica_user ',
Maestro_password = 'p@ssword123', maestro_log_file = 'mysql-bin.000001 ' ,
Maestro_log_pos = 1317;

Recuerde los valores que dijimos que debe recordar y posiblemente anotarlos al mostrar el estado del servidor maestro? Estos finalmente se han definido en el Maestro_log_file y Maestro_log_pos Atributos como se ve.

Finalmente, comience al esclavo para inicializar al esclavo para comenzar a replicar desde el maestro:

Mariadb [(ninguno)]> Iniciar esclavo;

Luego verifique el estado del esclavo

Mariadb [(ninguno)]> Mostrar el estado de esclavos;

Si la configuración se realizó perfectamente, no debe obtener la salida a continuación libre de ningún error.

El esclavo ahora está listo para la replicación.

Paso 5: Prueba de replicación de la base de datos

En última instancia, debemos confirmar si nuestra configuración está funcionando. Entonces, inicie sesión en una instancia de mariadb en el maestro y cree una base de datos de prueba como se muestra

Mariadb [(ninguno)]> Crear base de datos réplica_db;

Luego confirme la creación de la base de datos

Mariadb [(ninguno)]> mostrar bases de datos;

Regrese al nodo esclavo y verifique si la base de datos existe.

Perfecto! Nuestra configuración está funcionando! Todas las bases de datos posteriores creadas en el maestro se replicarán automáticamente y los cambios sincronizados en el nodo esclavo. Y esto nos lleva al final de esta guía.