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