instituto tecnológico superior de teziutlán unidad 4: esquemas … · 2019. 5. 30. · la...

12
Instituto Tecnológico Superior de TeziutlánMateria: Tópicos de bases de datos UNIDAD 4: Esquemas de seguridadAsignació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

Upload: others

Post on 24-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

“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

Page 2: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.

Page 3: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

Índice

Contenido Introducción .................................................................................................................................................................... 2

Índice ................................................................................................................................................................................. 3

MySQL .............................................................................................................................................................................. 4

SQL Server ...................................................................................................................................................................... 5

PostgreSQL ..................................................................................................................................................................... 7

Oracle DataBase ............................................................................................................................................................ 8

MongoDB ........................................................................................................................................................................ 10

SQLite .............................................................................................................................................................................. 11

Conclusiones ................................................................................................................................................................ 12

Page 4: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.

Page 5: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.

Page 6: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

➢ 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.

Page 7: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.

Page 8: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.

Page 9: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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]

Page 10: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.

Page 11: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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

Page 12: Instituto Tecnológico Superior de Teziutlán UNIDAD 4: Esquemas … · 2019. 5. 30. · La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren

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.