Cdigo: HOL-SQL09
Microsoft SQL Server 2005 Replication Services
Ruben Alonso Cebrian ralonso@[Link]
Introduccin
Consideraciones para la distribucin de datos
Duplicacin
ACTUALIZACIN
Transacciones distribuidas
Factores
ACTUALIZACIN ACTUALIZACIN
Temporizacin y latencia Autonoma del sitio Coherencia transaccional
El Modelo de replicacin en Microsoft Sql server 2000
Publicador
Mantiene las bases de datos de origen Facilita los datos para su duplicacin
Suscriptor
Recibe los cambios de los datos Alberga una copia de los datos
Distribuidor
Almacena los metadatos, el historial y, recibe y almacena los cambios Es posible reenviar los cambios a los suscriptores
Modelos de duplicacin
Publicador/Distribuidor central Publicador/ Distribuidor
Suscriptores Suscriptor central/Mltiples publicadores Publicador/ Distribuidor Publicador/ Distribuidor Publicador/ Distribuidor/ Suscriptor Publicador/ Distribuidor Mltiples publicadores/Mltiples suscriptores Publicador/ Distribuidor/ Suscriptor Publicador/ Distribuidor/ Suscriptor
Publicador/ Distribuidor
Suscriptor
Introduccin a la replicacin
Los datos de una base de datos se almacenan en ms 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 replicacin se compone de los siguientes elementos: Publicador Distribuidor Suscriptor Publicacin Artculo Suscripcin Agentes de replicacin
Introduccin a la replicacin
Publicador: Servidor que pone los datos a disposicin de otros servidores su replicacin. Distribuidor: Servidor que aloja la base de datos de distribucin (distribution) y almacena los datos histricos, transacciones y metadatos a replicar. Suscriptor: Servidor que recibe los datos replicados. Publicacin: Conjunto de artculos de una base de datos que se ponen a disposicin de la replicacin por parte de los publicadores. Artculo: Un artculo de una publicacin 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 simultneamente contar de todas las columnas o algunas (filtrado vertical). Suscripcin: Peticin de copia de datos o de objetos de base de datos para replicar. Una suscripcin define qu publicacin se recibir, dnde y cundo.
Pueden ser:
Suscripciones de insercin: El Publicador solicita la sincronizacin o distribucin de datos de una suscripcin. Suscripciones de extraccin: El Suscriptor solicita la sincronizacin o distribucin de datos de una suscripcin.
Agentes de replicacin: Procesos encargados de la copia de datos entre el publicador y el suscriptor.
Existen los siguientes agentes:
Agente de Instantneas Agente de distribucin Agente del lector de registro Agente del lector de cola Agente de mezcla
Filtros de datos en artculos
Tabla A
A B 1 2 3 4 5 6 7
Filtro vertical
C D E F 1 2 3 4 5 6 7 A B E
Publicador
Tabla B
A B 1 2 3 4 5 6 7
Filtro horizontal
C D E F 2 3 6 A B C D E F
Suscriptor
Suscripciones
Suscripcin de insercin
Suscriptor 1 Publicacin A
Suscriptor 2
Publicacin B
Suscriptor 3
Agentes de replicacin
Agente de instantneas: El agente de instantneas es el encargado de crear la instantnea inicial de la base de datos de publicacin y de almacenarla en una carpeta compartida del distribuidor. El agente de instantneas pone una marca en el registro de transacciones para indicar la hora de la instantnea. El agente lector de registros usa esta marca para determinar las transacciones que deben copiarse para actualizar la instantnea en los suscriptores. Agente lector de registros: El agente lector de registros supervisa el registro de transacciones para la base de datos de publicacin y copia transacciones nuevas en la base de datos de distribucin. Agente de distribucin: El agente de distribucin inicializa una copia de la base de datos de publicacin en cada suscriptor mediante la instantnea inicial. A partir de este momento, el agente de distribucin copiar peridicamente las transacciones almacenadas en la base de datos de distribucin y las aplicar a la copia de la base de datos de publicacin 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 mltiples suscriptores
Agente de mezcla: Combina los cambios de sitios mltiples en entornos heterogneos
Tipos de replicacin
REPLICACIN DE INSTANTANEAS
REPLICACIN TRANSACCIONAL
BBDD
REPLICACIN TRANSACCIONAL CON SUSCRIPCIONES DE ACTUALIZACIN REPLICACIN DE MEZCLA
BBDD
Modelo de replicacin transaccional
Consideraciones acerca del uso de la replicacin 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 Solucin de conflictos Hace un seguimiento de las actualizaciones Compara valores y resuelve conflictos Duplica slo los datos sincronizados
Configuracin
Sql Server Management Studio
Sql Server Management Studio
Conexin a Servidor Sql server Conexin a Servidor Sql Mobile Conexin a Servidor de anlisis Conexin a Servidor DTS Conexin a Servidor de informes
Sql Server Management Studio
Configuracin de replicacin
Configuracin de replicacin
Configuracin de replicacin
Configuracin de replicacin
TRANSACCIONAL
Configuracin de replicacin
Configuracin de replicacin
Configuracin de replicacin
Configuracin de replicacin
Creacin de suscripcin
Creacin de suscripcin
Creacin de suscripcin
Creacin de suscripcin
Creacin de suscripcin
Creacin de suscripcin
Demo: suscripcin de extraccin
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Instalacin de [Link]
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Duplicacin en Sql Server Mobile
Demo: Replicacin a Sql Server Mobile Edition
Duplicacin de datos en Sql CE
Dos mtodos: Acceso remoto a datos (RDA) Replicacin 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 fcil de configurar y utilizar Muy escalable
Acceso a Datos remotos (RDA)
[Link] [Link]
Obtener datos del servidor (online) Se obtienen los datos seleccionados mediante una consulta en SQL Crea una nueva tabla local
[Link] [Link]
Enva las modificaciones realizadas al servidor
Acceso a Datos remotos (RDA)
[Link].S ubmitSQL
Enva 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
Mtodo Pull
' Connection string to the instance of SQL Server Dim rdaOleDbConnectString As String = "Provider=sqloledb; Data Source=MySqlServer;Initial Catalog=Northwind; " + "User Id=username;Password=<password>"
' Initialize the RDA object. Dim rda As SqlCeRemoteDataAccess = Nothing
Try 'Try the Pull operation. rda = New SqlCeRemoteDataAccess() [Link] = "MyLogin" [Link] = "<password>" [Link] = "[Link] [Link] = "Provider=[Link].2.0;Data Source=\[Link]" [Link]("Employees", "Select * from Employees", rdaOleDbConnectString, [Link], "ErrorTable") Catch e As SqlCeException 'Use your own error handling routine. 'ShowErrors(e) Finally 'Dispose of the RDA object. [Link]() End Try
Mtodo Push
' Connection string to the instance of SQL Server Dim rdaOleDbConnectString As String = "Provider=sqloledb; Data Source=MySqlServer;Initial Catalog=Northwind; " + "User Id=username;Password=<password> ' Initialize the RDA object. Dim rda As SqlCeRemoteDataAccess = Nothing Try 'Try the Pull operation. rda = New SqlCeRemoteDataAccess() [Link] = "MyLogin" [Link] = "<password> [Link] = "[Link] [Link] = "Provider=[Link].2.0;Data Source=\[Link]" [Link]("MyLocalTable", rdaOleDbConnectString, [Link]) Catch e As SqlCeException 'Use you own Error Handling Routine. 'ShowErrors(e) Finally 'Dispose of the RDA object. [Link]() End Try
Mtodo SubmitSql
' Connection string to the instance of SQL Server Dim rdaOleDbConnectString As String = "Provider=sqloledb; Data Source=MySqlServer;Initial Catalog=Northwind; " + "User Id=username;Password=<password>
' Initialize the RDA object.
Dim rda As SqlCeRemoteDataAccess = Nothing Try 'Try the Pull operation. rda = New SqlCeRemoteDataAccess() [Link] = "MyLogin [Link] = "<password> [Link] = "[Link] [Link] = "Provider=[Link].2.0;Data Source=\[Link]" [Link]("MyLocalTable", rdaOleDbConnectString) Catch e As SqlCeException 'Use you own Error Handling Routine. 'ShowErrors(e) Finally 'Dispose of the RDA object. [Link]() End Try
Acceso a Datos remotos (RDA)
Notas a tener en cuenta
Para realizar una operacin PULL la tabla destino NO debe existir, por lo que antes se debe realizar un DROP TABLE Slo se puede realizar un PULL por tabla Por cada PULL se pueden mltiples PUSH
Replicacin CE
Slo MERGE es vlida en SQL Server CE
Snapshot y Transactional no disponibles
Requiere SQL Server 2000
Particionamiento vertical y horizontal Filtros dinmicos horizontales Columnas de identidad automticas Resolucin de conflictos
Estndares Definidos por el usuario
Replicacin CE
Terminologa
Distribuidor (Distributor)
Proceso encargado de manejar la distribucin de los datos a un suscriptor. Se ejecuta a travs del agente de SQL Server (HTTP)
Publicacin (Publication)
Definicin de los datos de la BBDD que estarn disponibles para la replicacin
Suscriptor (Subscriber)
Aplicacin que consume datos procedentes de una publicacin Opcionalmente puede enviar datos a dicha publicacin
Replicacin CE (APIs)
[Link]
Reemplaza el mtodo AddSubscription Crea una base de datos en blanco
[Link]
Realiza la sincronizacin inicial
Crea el esquema, descarga datos, crea restricciones
Realiza las sincronizaciones siguientes
Enva datos modificados al servidor Recoge los datos modificados del servidor
Replicacin CE
Ventajas de la replicacin
A diferencia de RDA, la replicacin es en los dos sentidos
Tanto el servidor como el cliente son sincronizados y actualizados No es necesario borrar las tablas del cliente
Resolucin de conflictos automtica
Configurable por el administrador de la BBDD
Limitaciones
No se permite utilizar simultneamente RDA y replicacin sobre la misma tabla No se pueden crear varias publicaciones (necesarias para las replicaciones) sobre la misma tabla para el mismo cliente
Novedades Replicacin SQL Server 2005
Novedades
Configuracin de replicacin a Oracle
Configuracin de suscripcin web
Configuracin de suscripcin web
Prximas Acciones
17/09/2005. HOL Windows Server 2003. IPSec 18/09/2005. Evento Windows Update Services 20/10/2005. Contramedidas Hacker. 21/10/2005: Gira Seguridad Technet. 17/09/2005. HOL Windows Server 2003. IPSec 18/09/2005. Evento Windows Update Services 20/10/2005. Contramedidas Hacker. 21/10/2005: Gira Seguridad Technet. 20/10/2005. Contramedidas Hacker. 21/10/2005: Gira Seguridad Technet.
Boletn quincenal TechNews
Contactos
Informtica 64
[Link] i64@[Link] +34 91 665 99 98
Profesor
ralonso@[Link]