“Instituto Tecnológico Superior de Teziutlán”
Materia: Tópicos de bases de datos
UNIDAD 4:
“Esquemas de seguridad”
Asignación:
Replicación de Base de Datos
Maestro: Edgar Degante Aguilar
Equipo: José Roberto Hernández Abundio, Itzel
Mota Cerón, Francisco Javier Tomas Toribio
Fecha de entrega: 09/05/2019
Introducción
La replicación es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base
de datos desde una base de datos a otra, para luego sincronizar ambas bases de datos y mantener su
coherencia. La replicación se utiliza para distribuir datos entre diferentes ubicaciones y entre usuarios
remotos o móviles mediante redes locales y de área extensa, conexiones de acceso telefónico, conexiones
inalámbricas e Internet. La replicación Instantánea en esta los datos de un servidor son simplemente copiados
a otro servidor o a otra base de datos dentro del mismo servidor. Al copiarse todo no necesitas un control de
cambios. Se suele utilizar cuando los datos cambian con muy poca frecuencia
La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren un alto
rendimiento como, por ejemplo, la mejora de la escalabilidad y la disponibilidad, el almacenamiento de datos
y la creación de informes, la integración de datos procedentes de varios sitios, la integración de datos
heterogéneos, y la descarga del procesamiento por lotes. La replicación de mezcla se ha diseñado
principalmente para las aplicaciones móviles o de servidores distribuidos que pueden encontrarse con
conflictos de datos. Los escenarios más frecuentes son: el intercambio de datos con usuarios móviles, las
aplicaciones de punto de venta (POS) a consumidores, y la integración de datos de varios sitios.
Índice
Contenido Introducción .................................................................................................................................................................... 2
Índice ................................................................................................................................................................................. 3
MySQL .............................................................................................................................................................................. 4
SQL Server ...................................................................................................................................................................... 5
PostgreSQL ..................................................................................................................................................................... 7
Oracle DataBase ............................................................................................................................................................ 8
MongoDB ........................................................................................................................................................................ 10
SQLite .............................................................................................................................................................................. 11
Conclusiones ................................................................................................................................................................ 12
MySQL
MySQL soporta replicación unidireccional asíncrona, es decir, las consultas de actualización
ejecutadas en el maestro son replicadas en los servidores esclavos. Esta replicación se realiza de
forma transparente. Además, es instantánea si los servidores esclavos están levantandos y en
estado de replicación.
La replicación de MySQL es un proceso en el que los datos de un servidor de base de datos MySQL
(el maestro) se copian automáticamente en uno o más servidores de bases de datos MySQL (el
esclavo).
La replicación no debe confundirse con las operaciones de respaldo. El objetivo de las copias de
seguridad es proteger los datos y/o la estructura de datos, la función de la replicación es
generalmente extensible para extender y escribir cargas de trabajo en varios servidores para fines
de escalabilidad. Diagrama y explicación del proceso:
A. Se ejecutan las
consultas en el servidor maestro y éstas son registradas en un log-binario.
B. El master manda un evento al proceso esclavo para avisarle que algo ha cambiado en el
maestro.
C. El servidor esclavo lee la siguiente posición desde la última leída del log binario hasta el final
y obtiene las consultas nuevas del servidor maestro.
D. El esclavo ejecuta las consultas leídas en su sistema.
SQL Server
La replicación en Microsoft SQL Server radica en el transporte de datos entre dos o más instancias
de servidores, y para ello brinda un conjunto de soluciones que permite la copia, distribución y
modificación de los datos, además incluye varios métodos y opciones para el diseño como:
implementación, supervisión y administración de la replicación, con el fin de mantener la coherencia
y seguridad de los datos.
Microsoft SQL Server realiza la réplica de los datos basándose en una metáfora de la industria de
la publicación, por lo que representa los componentes y procesos mediante una topología de
replicación, que se compone, básicamente, del publicador, el distribuidor, los suscriptores, las
publicaciones, los artículos y las suscripciones.
Una topología de replicación define la relación entre los servidores y las copias de los datos, y
determina cómo se desarrollará el flujo de la información.
➢ Publicador: Es una instancia de base de datos que permite que los datos estén disponibles
para otras ubicaciones a través de la replicación.
➢ Distribuidor: Es una instancia de base de datos que funciona como almacén para datos
específicos de replicación asociados con uno o más publicadores. Cada publicador está
asociado con una sola base de datos en el distribuidor.
➢ Suscriptor: Es una instancia de base de datos que recibe datos replicados. El suscriptor
también puede devolver los datos modificados al publicador o volver a publicar los datos en
otros suscriptores.
➢ Artículo: Identifica un objeto de base de datos incluido en una publicación, como, por
ejemplo: tablas, vistas, procedimientos almacenados y otros objetos.
➢ Publicación: Es un conjunto de uno o más artículos de una base de datos. La publicación
permite especificar un conjunto de objetos y datos de bases de datos que se replican como
una unidad.
➢ Suscripción: Es una solicitud de una copia de una publicación que se entrega a un
suscriptor. La suscripción define qué publicación se recibirá, dónde y cuándo.
➢ Agentes de Replicación: Son programas independientes para realizar las tareas asociadas
con el seguimiento de los cambios y la distribución de los datos. Existen varios agentes de
replicación como: el agente SQL Server, el agente de instantáneas, el agente de registro del
LOG, el agente de distribución, el agente de mezcla, el agente de lectura de cola y los trabajos
de mantenimiento de la replicación.
PostgreSQL PostgreSQL puede enviar la información de los registros WAL mediante un archivado continuo (WAL
Shipping) entre el servidor maestro y el servidor esclavo.
También se puede configurar para que se envíen los ficheros WAL con las operaciones DML de una
Base de Datos a otra mediante la red (Streaming Replication). El modo de envío de estos ficheros
puede ser de forma asíncrona o síncrona.
Una réplica de base de datos replica los datos de una manera muy sencilla: copia los ficheros de la
base de datos maestra, bit a bit, byte a byte. PostgreSQL 10 guarda en los ficheros que considere
necesarios cada elemento de una base de datos y para ello lleva un registro binario, una especie
de bitácora que resume el cambio hecho en dichos ficheros que se suceden cuando se agregan o
modifican registros. Dicha forma de replicar es también utilizada por otros motores de bases de
datos, ya que es un esquema bien conocido.
Un efecto colateral de las réplicas de bases de datos es que la esclava no estará disponible por
breves momentos mientras se escribe la información replicada. Esto no consideramos que sea algo
grave o para preocuparse, lo más importante ocurre en la base de datos maestra si está presente
algún bloqueo de registros o, peor aún, un conjunto de registros que pertenezcan a una transacción
que deba ser revertida. Estos no deben ser copiados en la réplica, porque es una información que
no va a ser registrada de manera permanente, sino que será borrada (solo se guardará un resumen
de la información).
El proceso de replicación no ve ni sabe nada sobre registros ni usuarios que quieran grabar o
modificar datos; el proceso de replicación únicamente ve que los ficheros deben ser iguales en
ambas máquinas y si el origen está escribiendo datos en alguno de esos ficheros se debe esperar
a que finalice y que el archivo entonces esté disponible para ser leído y copiado.
Oracle DataBase Características del Sistema de Replicación
Soportado
El sistema de replicación se basa en los mecanismos de recuperación “en caliente” de BBDD Oracle,
consistente en partir de una copia “en caliente” (copia física completa), de la BBDD e ir aplicando ficheros
de redo log archivados hasta el momento que se necesite. Este mecanismo es un mecanismo “soportado”
por Oracle, que lo llama “user-managed”.
No invasivo
El sistema no es invasivo respecto a los sistemas de BBDD de producción, no se ha de aplicar ningún tipo de
parametrización adicional en dichos sistemas, el mantenimiento recae mayoritariamente en el servidor
encargado de las réplicas.
Consolidación
El servidor encargado de las réplicas no tiene que ser dedicado, es decir, el sistema de replicación se puede
implantar conjuntamente a otro entorno, como DESARROLLO, IMPLANTACIÓN,
ASM/RAC
El sistema de replicación se ha diseñado para su funcionamiento con sistemas de ficheros tradicionales y
con el subsistema de almacenamiento Oracle ASM (Automatic Storage Management) y RAC (Real
Application Clusters).
Independencia
El sistema de replicación está basado en scripting de SO, no depende de opciones software adicionales u
otro tipo de tecnología como las opciones de replicación que suelen presentar las cabinas de
almacenamiento.
1. Traspaso en caliente de los
ficheros de la BBDD sobre uno de los grupos de discos ASM (+DATA, …), se requiere de la
instancia auxiliar SIDAUX.
2. Traspaso continuo de ficheros de redolog archivados, cada 30 minutos o el tiempo que se
considere apropiado.
3. Generación de backups de ficheros ASM (+DATA/…/backup).
4. Recuperación en caliente de la BBDD en modo RAC. [“Explotación y Análisis de datos” en
color verde en el gráfico]
5. Recuperación de backups de ficheros ASM.
6. Recuperación en caliente de la BBDD a partir del backup de ficheros ASM y aplicación de
todos los archs hasta el momento necesario. (desfase máximo: 30min) [“Respaldo de los
Sistemas de Producción” en color rojo en el gráfico]
MongoDB Mongo permite la replicación de datos para redundancia y alta disponibilidad.
Consiste de un conjunto de réplicas, que son un conjunto de instancias que hospedan el mismo set
de datos.
Dentro del conjunto existirán instancias o nodos primarios y secundarios.
Ejemplo:
La replicación está configurada en el nivel de cada instancia de MongoDB
Nodo Primario: acepta todas las operaciones de escritura del cliente
➢ Por defecto, acepta todas las operaciones de lectura
➢ Solo un elemento primario en un conjunto de réplicas
➢ Si falla un primario, el conjunto de réplica elige un nuevo primario
Nodos Secundarios: replica el conjunto de datos de las primarias
➢ Actualizaciones propagadas asincrónicamente a secundarios
➢ De forma predeterminada, solo copias de seguridad de las instancias sin servicio de
solicitudes
➢ Puede configurarse para aceptar solicitudes de lectura, pero no de escritura
Heartbeats (latidos): Los miembros del conjunto réplica envían latidos (pings) cada dos segundos.
Si un latido no regresa dentro de los 10 segundos, los otros miembros marcan al miembro
delincuente como inaccesible.
En caso de que el primario sea inaccesible, el algoritmo de elección hará un intento de «mejor
esfuerzo» para que el secundario con la prioridad más alta disponible invoque una elección y se
elegirá un nuevo primario.
SQLite Las modificaciones en la biblioteca SQLite son internas y la interfaz es la misma.
En el lado de la réplica, puede usar otra aplicación para acceder a la base de datos esclava,
utilizando la misma biblioteca liteReplica que se usa en el maestro.
Las bibliotecas liteReplica se comunicarán entre sí, intercambiando datos de transacción.
Por lo tanto, cuando su aplicación escribe en la base de
datos maestra, el código de liteReplica enviará la
transacción a la réplica esclava y estos cambios se
aplicarán como una transacción en la base de datos
esclava.
Si su aplicación revierte la transacción, lo mismo ocurrirá
en el lado esclavo.
La base de datos esclava es de solo lectura para la
aplicación que accede. Sólo el lireReplica lo actualizará.
TOPOLOGÍA
SENCILLO
1 maestro conectado a 1 esclavo
MUCHAS REPLICAS
1 maestro conectado a muchos esclavos
ENCADENADO
1 maestro conectado a 1 esclavo, y este a otro esclavo
Conclusiones Todos los sistemas gestores de bases de datos crean replicas con un fin en específico. El método de réplica
es algo estrictamente necesario hoy en día ya que casi todas las aplicaciones son cliente servidor, y
últimamente ya hasta se está dejando de lado el cliente servidor y las aplicaciones son multicapa y multimodo
en ambientes totalmente conectados y distribuidos. Lo que hace necesario que los datos estén siempre en
la terminal, y no solo haya una base de datos centralizada, sino distribuida y con un servidor de back up, algo
muy utilizado en la banca de todo el mundo.