680 likes | 915 Views
HOL-SQL24. Microsoft SQL Server 2008 Replication Services. Rubén Alonso Cebrián ralonso@informatica64.com www.puntocompartido.com. Introducción. Consideraciones para la distribución de datos. Duplicación. Transacciones distribuidas. ACTUALIZACIÓN. ACTUALIZACIÓN. ACTUALIZACIÓN.
E N D
HOL-SQL24 Microsoft SQL Server 2008ReplicationServices Rubén Alonso Cebrián ralonso@informatica64.com www.puntocompartido.com
Consideraciones para la distribución de datos Duplicación Transacciones distribuidas ACTUALIZACIÓN ACTUALIZACIÓN ACTUALIZACIÓN Factores Temporización y latencia Autonomía delsitio Coherencia transaccional
El Modelo de replicación en Microsoft Sql server 2008 Mantiene las bases de datos de origen Facilita los datos para su duplicación Publicador Suscriptor Recibe los cambios de los datos Distribuidor Alberga una copia de los datos Almacena los metadatos, el historial y, recibe y almacena los cambios Es posible reenviar los cambios a los suscriptores
Modelos de duplicación Publicador/Distribuidor central Publicador/ Distribuidor Suscriptores Múltiples publicadores/Múltiples suscriptores Suscriptor central/Múltiples publicadores Publicador/ Distribuidor Publicador/ Distribuidor Publicador/ Distribuidor/Suscriptor Publicador/ Distribuidor/Suscriptor Publicador/ Distribuidor/Suscriptor Suscriptor Publicador/ Distribuidor Publicador/ Distribuidor
Introducción a la replicación • Los datos de una base de datos se almacenan en más de un sitio • Permite aumentar la disponibilidad de los datos y mejora el funcionamiento de las consultas globales a la base de datos • El modelo de replicación se compone de los siguientes elementos: • Publicador • Distribuidor • Suscriptor • Publicación • Artículo • Suscripción • Agentes de replicación
Introducción a la replicación • Publicador: Servidor que pone los datos a disposición de otros servidores su replicación. • Distribuidor: Servidor que aloja la base de datos de distribución (distribution) y almacena los datos históricos, transacciones y metadatos a replicar. • Suscriptor: Servidor que recibe los datos replicados. • Publicación: Conjunto de artículos de una base de datos que se ponen a disposición de la replicación por parte de los publicadores. • Artículo: Un artículo de una publicación puede ser una vista, procedimiento almacenado, etc. o una tabla de datos la cual puede contar con todas las filas o algunas (filtrado horizontal) y simultáneamente contar de todas las columnas o algunas (filtrado vertical). • Suscripción: Petición de copia de datos o de objetos de base de datos para replicar. Una suscripción define qué publicación se recibirá, dónde y cuándo. • Pueden ser: • Suscripciones de inserción: El Publicador solicita la sincronización o distribución de datos de una suscripción. • Suscripciones de extracción: El Suscriptor solicita la sincronización o distribución de datos de una suscripción. • Agentes de replicación: Procesos encargados de la copia de datos entre el publicador y el suscriptor. • Existen los siguientes agentes: • Agente de Instantáneas • Agente de distribución • Agente del lector de registro • Agente del lector de cola • Agente de mezcla
Filtros de datos en artículos A A B B C C D D E E F F 1 1 2 2 3 3 4 4 5 5 A B E 6 6 1 7 7 2 3 4 A B C D E F 5 2 6 3 7 6 Filtro vertical Tabla A Filtro horizontal Suscriptor Publicador Tabla B
Suscripciones Suscripción de inserción Suscriptor 1 Suscripción de inserción Publicación A Suscripción de extracción Suscriptor 2 Suscripción de inserción Publicación B Suscriptor 3
Agentes de replicación • Agente de instantáneas: El agente de instantáneas es el encargado de crear la instantánea inicial de la base de datos de publicación y de almacenarla en una carpeta compartida del distribuidor. El agente de instantáneas pone una marca en el registro de transacciones para indicar la hora de la instantánea. El agente lector de registros usa esta marca para determinar las transacciones que deben copiarse para actualizar la instantánea en los suscriptores. • Agente lector de registros: El agente lector de registros supervisa el registro de transacciones para la base de datos de publicación y copia transacciones nuevas en la base de datos de distribución. • Agente de distribución: El agente de distribución inicializa una copia de la base de datos de publicación en cada suscriptor mediante la instantánea inicial. A partir de este momento, el agente de distribución copiará periódicamente las transacciones almacenadas en la base de datos de distribución y las aplicará a la copia de la base de datos de publicación de cada suscriptor para mantener la base de datos actualizada. • Agente del lector de cola: Aplica los cambios de una cola y los aplica a múltiples suscriptores • Agente de mezcla: Combina los cambios de sitios múltiples en entornos heterogéneos
Tipos de replicación BBDD REPLICACIÓN DE INSTANTANEAS BBDD REPLICACIÓN TRANSACCIONAL REPLICACIÓN TRANSACCIONAL CON SUSCRIPCIONES DE ACTUALIZACIÓN REPLICACIÓN DE MEZCLA
Consideraciones acerca del uso de la replicación de mezcla • Cambios en el esquema • Identifica una columna exclusiva • Agrega varias tablas de sistema • Crea desencadenadores basados en las tablas del publicador y del suscriptor • Solución de conflictos • Hace un seguimiento de las actualizaciones • Compara valores y resuelve conflictos • Duplica sólo los datos sincronizados
Sql Server Management Studio Conexión a Servidor Sql server Conexión a Servidor Sql Mobile Conexión a Servidor de análisis Conexión a Servidor DTS Conexión a Servidor de informes
Configuración de replicación TRANSACCIONAL
Duplicación en Sql Server Mobile Instalación de Sqlce30setupen.msi
Duplicación de datos en Sql CE Dos métodos: • Acceso remoto a datos (RDA) • Replicación de mezcla
Acceso a Datos remotos (RDA) • Acceso a SQL Server 7.0 y SQL Server 2000 • Descarga los datos al dispositivo y se desconecta • Posibilidad de seguimiento de datos mientras está desconectado • Muy fácil de configurar y utilizar • Muy escalable
Acceso a Datos remotos (RDA) • System.Data.SQLServerCe.SqlceRemoteDataAccess.Pull • Obtener datos del servidor (online) • Se obtienen los datos seleccionados mediante una consulta en SQL • Crea una nueva tabla local • System.Data.SQLServerCe.RemoteDataAccess.Push • Envía las modificaciones realizadas al servidor
Acceso a Datos remotos (RDA) • System.Data.SQLServerCe.RemoteDataAccess.SubmitSQL • Envía una sentencia SQL al servidor • INSERT, DELETE, UPDATE, Procesos almacenados • Para mantener una base de datos del cliente actualizada, se realiza el proceso en tres pasos • PULL • Manipular los datos en el dispositivo (offline) • Agregar, modificar, borrar y consultar datos. • PUSH