lunes, 9 de agosto de 2021

5.2. RÉPLICA (REPLICATION).

La replicación de base de datos es una herramienta muy potente en el mundo de las aplicaciones distribuidas. Sus aplicaciones en el mundo real son muy variadas. Sin embargo, para que se pueda utilizar de forma correcta y funcione como esperamos es importante conocer realmente cómo funciona y las diferentes opciones que nos ofrece. Los beneficios o los entornos donde es aplicable la replicación de bases de datos son los siguientes:

v  Usuarios trabajando en ubicaciones geográficamente alejados trabajando con sus propias copias locales de la base de datos.

v  Entornos en los que se replica la base de datos principal en una secundaria como copia de seguridad. En el caso que la primaria caiga, la secundaria toma el control.

v  En entornos en los que la carga de usuarios sea muy grande para un sólo gestor, se pueden replicar las bases de datos en varios servidores asignando a cada usuario un servidor. Balanceando de esta manera la carga podremos aliviar a los gestores. Como observamos, los entornos son variados y comunes en muchos casos. El problema reside en la configuración y la elección correcta del tipo de replicación Modelo de Replicación Antes de empezar, vamos a clarificar los conceptos y términos que se utilizan cuando hablamos de la replicación.

La replicación es el proceso de copiar y mantener actualizados los datos en varios nodos de bases de datos ya sean estos persistentes o no. Éste usa un concepto donde existe un nodo amo o maestro (master) y otros sirvientes o esclavos (slaves).

La replicación de discos y particiones es la respuesta a una parte importante de esas dos acciones de mantenimiento. La replicación es el proceso mediante el cual se genera una copia exacta de parte del sistema. Esa parte puede ser desde un archivo hasta una carpeta, una partición, un disco o incluso varios discos.

La replicación es útil para:

 Copia de Seguridad

En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad.

Además, se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.

 Mejorar la Escalabilidad

Podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados.

Podríamos usar herramientas como MySQL Proxy para balancear las consultas de lectura entre los servidores replicados y enviar las consultas de actualización de datos al maestro.

 Alta Disponibilidad

En aplicaciones y entornos en donde sólo se requieren lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno se cae se continue prestando servicio.

El Log Binario

El log binario es un archivo binario gestionado por el servidor de base de datos en el que se registran todas las sentencias SQL de modificación de datos o estructura.

En el caso de la replicación es importante saber que cada servidor esclavo se conecta al servidor maestro y le solicita que le envíe las sentencias registradas en los logs binarios a partir de una posición, para ello, cada esclavo mantiene un archivo a modo de índice en donde registra la posición actual de la replicación.

Gracias a esto, podemos detener el esclavo (STOP SLAVE), que haya un corte de red, etc... De manera que cuando se vuelva a iniciar la replicación (START SLAVE) o se reestablezca la comunicación... Pase el tiempo que pase) el esclavo solicitará al maestro todas las sentencias a ejecutar desde su estado actual y las irá ejecutando secuencialmente de manera que en cuestión de segundos ambos servidores tendrán las bases de datos con el mismo contenido y estructura.

Probando la Replicación

1. En el servidor esclavo ejecute el comando SHOW SLAVE STATUS y observe que el mensaje que le muestra es un mensaje que indica que está esperando eventos del maestro...

2. Modifique algo en el maestro y verifique que instantáneamente se replica en el esclavo.

3. Detenga el esclavo durante un tiempo, realice cambios (cree tablas, modifique registros...) en el maestro e inicie el esclavo. En cuestión de milisegundos ambas bases de datos deberían de ser iguales.


No hay comentarios:

Publicar un comentario