Grandes de Bases de Datos - Piazza

Post on 06-Jul-2022

1 views 0 download

Transcript of Grandes de Bases de Datos - Piazza

Grandes de Bases de Datos

Alta disponibilidad

Replicación

Introducción

Replicación – Datos distribuidos

• Generalidades

Registro Registro

Datos

Registro

Datos

Servidor A Servidor B

Replicación – Datos distribuidos

• Generalidades

Registro Registro

Datos

Registro

Datos

Servidor A Servidor B

Replicación – Datos distribuidos

• Generalidades

Datos Datos

SQL Server Oracle

Conexión genérica

Conexión Oracle

Conexión SQL Server

SMBD

1

2

3 3

4 4

Administrador Recursos

Componentes de un nodo en 1 transacción distribuida

Administrador Transacciones

1

2

Registro de A.T

BD BD

2

Transmisión transacción distribuida

1

Administrador Recursos

Admin. Trans

Registro de A.T

BD BD

Nodo 1

Administrador Recursos

Admin. Trans

Registro de A.T

BD BD

Nodo 2

2 n

Transfiriendo datos distribuidos

1

Administrador Recursos

Admin. Trans

Registro de A.T

BD BD

Nodo 1

1. Inicia Tx

2. Creación objeto de transacción

3. Ligado de Tx a un objeto de conexión

2

Tx Tx

3

Tx

Transfiriendo datos distribuidos

Administrador Recursos

Admin. Trans

Registro de A.T

BD BD

Nodo 1

4. Actualización o lectura de datos

5. Tx es “Commited” o “Rollback”

Tx

Tx

4

5

Tx

Protocolo de 2 fases

1 1. Inicia Tx

2. Se envía la T hacia los n equipos

3. Al llegar a los equipos, T, se realiza o no (se guarda en el registros)

Datos

Equipo 2

Datos

Equipo 3

Datos

Equipo 1

Tx Tx Tx

3 3

2

Protocolo de 2 fases

1 4. Si todas las Tx

son válidas, se propaga “´Commited”

Datos

Equipo 2

Datos

Equipo 3

Datos

Equipo 1 Tx

Tx Tx

3 3

2

4 4

Protocolo de 2 fases

5. Si por lo menos 1 es inválida, se propaga “Rollback”

Datos

Equipo 2

Datos

Equipo 3

Datos

Equipo 1 Tx

Tx Tx

3 3

2

4 4

1

Replicación

• El propósito general de la replicación es distribuir datos de una base de datos maestra a una o más bases de datos secundarias.)

• La distribución se realiza entre distintas bases de datos, plataformas y ubicaciones geográficas.

Replicación

• Dado que la replicación mantiene datos duplicados en sincronización con la copia maestra, es posible utilizar para brindar alta disponibilidad

• Existen procesos de sincronización encargados de validar la integridad de los datos

• La latencia de la propagación de los cambios se debe considerar dentro de los SLA

Replicación

• ¿Cómo replicar?

• ¿Qué replicar?

• ¿Cuándo replicar?

• ¿Cómo propagar los cambios?

Replicación

• 2 tipos de replicación:

– “Eager Replication” o Replicación ansiosa

– “Lazy Replication” o Replicación perezosa

Replicación ansiosa

• Replicación ansiosa

– Replicación sincrónica

– Una aplicación actualiza datos locales y dentro de la misma transacción otras replicas de estos datos

– No ocurren anomalías de concurrencia

– Si algún nodo se desconecta, se previene la transacción

– Protocolo de 2 fases

Replicación ansiosa

• Replicación ansiosa

– Velocidad vs Desempeño

– Consiste de los siguientes pasos:

• Ejecución local

• Transmisión de la transacción

• Notificación

• Aprobación o rechazo de la transacción

“Database Replication Techniques: A Three Parameter Classification,”

M. Weismann, F. Pedone, A. Schiper, B. Kemme, y G. Alonso

Proceedings of 19th IEEE Symposium on Reliable Distributed Systems (SRDS2000) (Nurnberg:

Germany, IEEE Computer Society, October 2000), 206–15.

Replicación perezosa

• Replicación perezosa

– Replicación asincrónica

– Una aplicación actualiza datos locales y dentro de la misma transacción otras replicas de estos datos, sin embargo solamente se propagan las transacciones que tienen aprobación.

– Esto garantiza que las transacciones aprobadas se puedan enviar a clientes o sitios desconectados.

Replicación perezosa

• Replicación perezosa

– Existe la posibilidad de problemas de consistencia.

– Se asocian marcas de tiempo “timestamps” en cada elemento y éste se compara cada que participa en una transacción.

“The Dangers of Replication and a Solution,” by J. Gray, P. Helland, P. O’Neil, y D. Sasha in

Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data

(Montreal: Canada, June 1996), 173–82.

Replicación perezosa

• Replicación perezosa

– Instantáneas

– Transaccional

– De mezcla

Replicación perezosa

• Replicación perezosa

– Instantáneas

– Se crea una copia de los datos y se propagan los datos del conjunto total, en lugar de transacciones individuales.

– Ejemplo:

Tiendas regionales con descuentos por temporadas

Replicación perezosa

• Replicación perezosa

– Transaccional

– Permite cambios incrementales enviados continuamente o por intervalos.

– Ejemplo:

Inventarios con disponibilidades inmediatas (ticketmaster)

Replicación perezosa

• Replicación perezosa

– De mezcla

– Permite un nivel mayor de autonomía. Se permiten las actualizaciones en elementos compartidos y los cambios se propagan entre equipos

– Ejemplo:

Ventas y trabajos de campo (encuestas, etcétera)

Replicación

• Beneficios

– Escalabilidad

– Tolerancia a fallos

– Autonomía de sitios

– Compatibilidad entre plataformas

Replicación

• Escenarios

– Mantener ambientes de DW

– Transferencia en tiempo real

– Alta disponibilidad (warm)

– Compatibilidad entre plataformas

Replicación vs Transacciones Distribuidas

Replicación: Publicador - Subscriptor

• Símil con subscripciones físicas

1. Un publicador (editor), crea una publicación, dicha publicación contiene artículos.

2. Un distribuidor, transfiere la publicación hacia puestos donde “alguien” la consume.

3. Un subscriptor recibe la publicación (y los artículos que contiene)

Publicador Distribuidor Subscriptor 1 2

Replicación: Publicador - Subscriptor

• Componentes

1. Distribuidor.

2. Publicador.

3. Subscriptor.

4. Publicación.

5. Artículos.

6. Subscripciones.

7. Agentes.

Publicador

Distribuidor

Subscriptor

1

2

3

4

5

7

6

7

7

Replicación: Publicador - Subscriptor

1. Distribuidor

– Componente común

– Paso de información entre componentes

– Distribuidor Local

– Distribuidor Remoto

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

2. Publicador

– Equipo que contiene la información a replicar

– Identificación y seguimiento a cambios

– Datos disponibles para replicar

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

3. Subscriptor

– Equipo que contiene la información replicada

– Puede actualizar el estado del publicador

– Puede actuar como publicador para más subscriptores

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

4. Publicación

– Unidad que contiene uno o más artículos

– Es la fuente de la replicación

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

5. Artículos

– Agrupación de datos por replicar

– Componente de la publicación

– Conjunto de columnas, registros, procedimientos almacenados, vistas o funciones

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

6. Subscripciones

– Conjunto de datos y métodos para obtener las publicaciones

– Determinado por el proceso de sincronización

– Anónimas

– Nombradas

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

6. Subscripciones

– Pull

– Push

Publicador

Distribuidor

Subscriptor

Replicación: Publicador - Subscriptor

6. Subscripciones

– Pull

1. Subscriptores se crean en el Publicador

2. Subscripciones se crean en el Publicador

Publicador

BD Pub

Distribuidor

BD Distrb

Subscriptor

Datos

Agente Distrib

1

2

Replicación: Publicador - Subscriptor

6. Subscripciones

– Pull

3. Publicador activa al subscriptor y sus subscripciones

4. Publicador transmite los cambios en publicaciones al Distribuidor

Publicador

BD Pub

Distribuidor

BD Distrb

Subscriptor

Datos

Agente Distrib

1

2

3

4

Replicación: Publicador - Subscriptor

6. Subscripciones

– Pull

5. Agente de distribución obtiene datos por replicar

6. Agente de distribución almacena los cambios

Publicador

BD Pub

Distribuidor

BD Distrb

Subscriptor

Datos

Agente Distrib

1

2

3

4

5

6

Replicación: Publicador - Subscriptor

6. Subscripciones

– Pull

7. Agente de distribución “mueve” las transacciones o instantáneas a los subscriptores apropiados

Publicador

BD Pub

Distribuidor

BD Distrb

Subscriptor

Datos

Agente Distrib

1

2

3

4

5

6

7

Replicación: Publicador - Subscriptor

6. Subscripciones

– Push

1. Subscriptores se crean en el Subscriptor

2. Subscripciones se crean en el Subscriptor

Publicador

BD Pub

Subscriptor Datos

Agente Distrib

1

2

BD Distrb

Distribuidor

BD Distrb

A. Pub

Replicación: Publicador - Subscriptor

6. Subscripciones

– Push

3. Subscriptor habilita los subscriptores y subscripciones

4. Publicador registra los subscriptores y subscripciones

Publicador

BD Pub

Subscriptor Datos

Agente Distrib

1

2

BD Distrb

Distribuidor

BD Distrb

A. Pub

3

4

Replicación: Publicador - Subscriptor

6. Subscripciones

– Push

5. Subscriptor solicita datos

6. Distribuidor envía peticiones al Publicador

Publicador

BD Pub

Subscriptor Datos

Agente Distrib

1

2

BD Distrb

Distribuidor

BD Distrb

A. Pub

3

4

6

5

Replicación: Publicador - Subscriptor

6. Subscripciones

– Push

7. Publicador verifica los cambios

8. El agente publicador indica si existen datos disponibles o no

Publicador

BD Pub

Subscriptor Datos

Agente Distrib

1

2

BD Distrb

Distribuidor

BD Distrb

A. Pub

3

4

6

5

7

8

Replicación: Publicador - Subscriptor

6. Subscripciones

– Push

9. Si hay datos, el Publicador envía publicaciones al Distribuidor

10. Publicador envía mensajes de error e historia al Distribuidor

Publicador

BD Pub

Subscriptor Datos

Agente Distrib

1

2

BD Distrb

Distribuidor

BD Distrb

A. Pub

3

4

6

5

7

8

9 10

Replicación: Publicador - Subscriptor

6. Subscripciones

– Push

11. Distribuidor envía las transacciones al Subscriptor

Publicador

BD Pub

Subscriptor Datos

Agente Distrib

1

2 3

7

8

BD Distrb

Distribuidor

BD Distrb

A. Pub 4

6 9 10

5 11

Replicación: Publicador - Subscriptor

7. Agentes

– Realizan todo el trabajo

– Instantánea

– Lectura de registro

– Distribución

– Mezcla

– Encolamiento

Publicador

Distribuidor

Subscriptor

Replicación – Modelos físicos

1. Publicador/Distribuidor – Subscriptor

2. Publicador Central – Múltiples Subscriptores

3. Subscriptor Central – Múltiples Publicadores

4. Múltiples Subscriptores – Múltiples Publicadores

Replicación – Modelos físicos

1. Publicador/Distribuidor – Subscriptor

Distribuidor

Publicador Subscriptor

Replicación – Modelos físicos

2. Publicador Central – Múltiples Subscriptores

Distribuidor

Publicador

Subscriptor

Subscriptor

Subscriptor

Replicación – Modelos físicos

2. Publicador Central – Múltiples Subscriptores

Publicador Subscriptor

Subscriptor

Subscriptor

Distribuidor

Replicación – Modelos físicos

3. Subscriptor Central – Múltiples Publicadores

Distribuidor

Publicador

Subscriptor

Distribuidor

Publicador

Replicación – Modelos físicos

4. Múltiples Subscriptores – Múltiples Publicadores

Subscriptor

Publicador

Subscriptor

Publicador

Replicación

1. Instantáneas

Registro

Datos

Registro

Datos

Publicador Distribuidor

Replicación - Instantáneas

1. Alto grado de latencia – autonomía.

2. Sincronización completa de datos y objetos.

3. Por omisión, se realiza la primera vez en los demás tipos de replicación.

4. Se generan archivos de “instantáneas” y estos contienen las modificaciones.

5. El distribuidor se encargar de propagar los cambios

\\SHARED

Replicación - Instantáneas

1. Publicador contiene elementos por publicar

2. El agente de instantánea transfiere los artículos del Publicador a la ruta compartida

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

Replicación - Instantáneas

3. Agente de instantánea escribe registros en la BD del Distribuidor

4. El agente de distribución transfiere los artículos del Distribuidor al Subscriptor

\\SHARED

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

3

4

Replicación – Instantáneas - Detalles

1. Se establece la conexión entre el Distribuidor y el Publicador

2. El agente de instantánea bloquea las tablas a publicar

BD Distrb BD Pub

1

2

Replicación – Instantáneas - Detalles

3. Se generan los scripts de esquema y datos

4. Se copian por bloques los datos desde la base del Publicador

BD Distrb BD Pub

1

2

3

4

Replicación – Instantáneas - Detalles

5. Se registran los cambios en la base del Distribuidor

6. Se liberan los bloqueos de las tablas publicadas

BD Distrb BD Pub

1

2

3

4

5

6

Replicación - Instantáneas

1. Útil cuando no es necesario cambios en tiempo casi - real.

2. Se pueden generar cargas “masivas” de modo programado.

3. Los subscriptores no modifican datos compartidos.

4. Los subscriptores requieren autonomía.

Replicación

1. Transaccional

Registro

Datos

Registro

Datos

Publicador Distribuidor

Registro

Replicación - Transaccional

1. Útil cuando no es necesario cambios en tiempo casi - real.

2. Se necesitan cambios incrementales continuos.

3. Necesaria una latencia mínima.

4. Las conexiones entre Publicador y Subscriptores son consistentes.

Replicación - Transaccional

5. El Publicador tiene una gran cantidad de modificaciones.

6. Se requiere un ambiente heterogéneo en el Publicador

7. Función idéntica a “Envió de bitácoras”

8. Soporta modelo “Peer-to-Peer”

9. No genera bloqueos después de la primera sincronización

Replicación - Transaccional

1. Las transacciones se registran en la BD del Publicador

2. El agente de lectura de registro toma sólo transacciones “commited”

3. Escribe estas transacciones en la BD del Distribuidor

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

Replicación - Transaccional

4. El agente de distribución lee estos registros

5. El agente de distribución, transfiere los datos a las bases de los subscriptores que aplican

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

5

4

Replicación - Transaccional

1. Es posible realizar actualizaciones desde los subscriptores

1. Implica manejo del 2PC

2. Sobrecarga en el envío de mensajes

2. Esta opción se recomienda únicamente cuando las actualizaciones en los subscriptores no son muchas (por el 2PC)

Replicación - Transaccional

Hay 2 formas de actualización

1. Inmediata

2. Encolamiento

Replicación - Transaccional

1. Inmediata

a) 2PC

b) Los cambios de subscriptores se propagan vía servicio de transacciones distribuidas (RPC)

c) Conexión constante entre publicador y subscriptores

Replicación - Transaccional

1. Se agregan columnas de versión en tablas por replicar

2. El agente lector de registro sólo toma transacciones “commited” de la BD del Publicador

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

DTC

DTC

Replicación - Transaccional

3. Agente lector escribe dichas transacciones en BD de Distribuidor

4. Agente de distribución transfiere datos a BD de Subscriptor

5. “Triggers” de inserción, borrado y actualización se agregan en la BD del subscriptor

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

4

3

5

Replicación - Transaccional

6. Cambios en la BD del Subscriptor se propagan hacia el Publicador vía el coordinador de transacciones

7. Se generan llamadas a procedimientos remotos (RPC)

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

4

3 DTC

6

7

5

Replicación - Transaccional

2. Encolamiento

a) Los datos se propagan por lapsos, mientras se encolan en los subscriptores

b) Se presentan conflictos

i. Política: Publicador gana

ii. Política: Subscriptor gana

Replicación - Transaccional

1. Se agregan columnas de versión en tablas por replicar

2. El agente lector de registro sólo toma transacciones “commited” de la BD del Publicador

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

Replicación - Transaccional

3. Agente lector escribe dichas transacciones en BD de Distribuidor

4. Agente de distribución transfiere datos a BD de Subscriptor

5. Los cambios de almacenan en tablas de sistema

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

4

3

5

Replicación - Transaccional

3. Agente lector escribe dichas transacciones en BD de Distribuidor

4. Agente de distribución transfiere datos a BD de Subscriptor

5. Los cambios de almacenan en tablas de sistema

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

4

3

5 5

Replicación - Transaccional

6. En tiempos definidos, el agente lector de encolamiento, lee los cambios en la tabla de sistema y propaga los cambios hacia el Publicador

Publicador

BD Pub

Subscriptor

BD Subs

BD Distrb

Distribuidor

BD Distrb

1

2

4

3

5 5

Replicación - Transaccional

1. Modelo “Peer to Peer”

2. Nodo 1 contiene Publicador, Distribuidor y es Subscriptor del nodo 2.

3. El nodo 2 también contiene Publicador, Distribuidor y es Subscriptor del nodo 1.

4. Ambos nodos detectan cuando una modificación no es cíclica.

Replicación - Transaccional

1. Modelo “Peer to Peer”

Distribuidor

Publicador

Subscriptor

Nodo 1

Distribuidor

Publicador

Subscriptor

Nodo 2

1. Modelo “Peer to Peer” - Topologías

a) Balanceo de carga

Replicación - Transaccional

Nodo 1 Nodo 2

Replicación - Transaccional

1. Modelo “Peer to Peer” - Topologías

a) Balanceo de carga

Nodo 1

Nodo 2

Balan

ceo

de

carga

App Server

Replicación - Transaccional

1. Modelo “Peer to Peer” - Topologías

b) Alta disponibilidad

Nodo 1

Nodo 2

Balan

ceo

de

carga

App Server

Replicación

1. Mezcla

Registro

Datos

Registro

Datos

Servidor 1 Servidor 2

Registro

Datos

Replicación - Mezcla

1. Útil cuando no es necesario cambios en tiempo casi - real.

2. Se necesitan cambios incrementales continuos y una autonomía entre nodos.

3. El modelo de negocio permite la existencia de conflictos y hay políticas para resolverlos.

Replicación - Mezcla

1. Publicador contiene los elementos a enviar

Publicador

BD Pub

Subscriptor Datos

Agente Mezcla BD Distrb

Distribuidor

BD Distrb

1

Replicación - Mezcla

2. Conflictos, cambios y “triggers” se encuentran en ambas BD, Publicador y Subscriptor

Publicador

BD Pub

Subscriptor Datos

Agente Mezcla BD Distrb

Distribuidor

BD Distrb

1

2

Agente Mezcla

Replicación - Mezcla

3. El agente de mezcla se encarga de sintetizar los cambios, aprobar o rechazar según políticas y propagar los cambios.

Publicador

BD Pub

Subscriptor Datos

BD Distrb

Distribuidor

BD Distrb

1

2

3

3

Replicación - Mezcla

4. El agente de mezcla transfiere el registro de toda actividad a la BD del Distribuidor

Publicador

BD Pub

Subscriptor Datos

Agente Mezcla BD Distrb

Distribuidor

BD Distrb

1

2 4

3

3

Replicación - Mezcla

1. Políticas de resolución de conflictos

1. Basada en prioridad

2. Código personalizado

Replicación

• Detalles generales

– Múltiples copias

– Conmutación manual o automática en configuración de balanceo de carga

Replicación

• Detalles específicos

– Alcance a nivel de base de datos

– Pueden existen problemas de actualización si se utiliza por si misma para alta disponibilidad

– Latencia en la red juega un papel primordial

Replicación

• Conmutación por error

– Revisar equipo y ponerlo en disponibilidad.

– Generar sincronización.

– Verificar posibles problemas de actualización – manejo de conflictos

– Inicializar cualquier tarea programada pendiente.

Replicación

• Conmutación contraria controlada - razones

– Contratos y servicios dictan ejecución en un equipo en particular

– Cada nodo de la topología atiende una región especifica del negocio, otros pueden tomar el trabajo pero hay que volver a balancear la carga

Replicación

• Ambientes donde se recomienda aplicar

– Existen múltiples subscriptores que necesitan aplicar cambios.

– No es necesario una conmutación automática.

– Es necesaria una replicación adicional de otro ambiente de HA.

– La estrategia de negocio permite “fragmentar” el acceso de la información.

Replicación

• Ambientes donde se recomienda aplicar

– Son necesarios servidores para reportes.

– Es viable una autonomía de los subscriptores y la latencia de conexión no importa

Replicación

• Consideraciones

– Velocidad de red.

– Desempeño de servidores.

– Capacidad de almacenamiento.

– Manejo de conflictos.

– Periodicidad de actualización entre nodos.

Replicación

• Consideraciones de diseño

– Seguridad.

• Especificar los roles adecuados (nivel de dominio).

– Modo de recuperación.

– Lugar de almacenamiento.

• Servidores externos

– Red – velocidad de conexión.

– Determinar diseño lógico.

– Determinar diseño físico.

Replicación

• Consideraciones de diseño

– Ambiente a nivel de base de datos.

• Si se concentran todas las subscripciones en un distribuidor, se convierte en un SPF.

– Identificar si existe dependencias entre bases de datos, esquemas, tablas, procedimientos almacenados, etc..

– Tiempo de promedio de pérdida de datos

• 4 veces el tiempo máximo de latencia entre los peores nodos de la topología