Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian [email protected]...
-
Upload
rufino-hernandes -
Category
Documents
-
view
10 -
download
2
Transcript of Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian [email protected]...
Microsoft SQL Server 2005Replication Services
Ruben Alonso Cebrian
Código: HOL-SQL09
Introducción
Consideraciones para la distribución de datos
Factores
Temporización y latencia
Autonomía delsitio
Coherencia transaccional
DuplicaciónDuplicaciónDuplicaciónDuplicación
ACTUALIZACIÓN
Transacciones distribuidasTransacciones distribuidasTransacciones distribuidasTransacciones distribuidas
ACTUALIZACIÓN ACTUALIZACIÓN
El Modelo de replicación en Microsoft Sql server 2000
PubliPublicadorcadorPubliPublicadorcador
Mantiene las bases de datos de origen
Facilita los datos para su duplicación
DistribuDistribuidoridorDistribuDistribuidoridor
Recibe los cambios de los datos
Almacena los metadatos, el historial y, recibe y almacena los cambios
Es posible reenviar los cambios a los suscriptores
Alberga una copia de los datos
SuscriSuscriptorptorSuscriSuscriptorptor
Modelos de duplicación
Suscriptor central/Múltiples publicadoresSuscriptor central/Múltiples publicadoresSuscriptor central/Múltiples publicadoresSuscriptor central/Múltiples publicadores
Publicador/Distribuidor
SuscriptorPublicador/Distribuidor
Publicador/Distribuidor
Publicador/Distribuidor
Múltiples publicadores/Múltiples suscriptoresMúltiples publicadores/Múltiples suscriptoresMúltiples publicadores/Múltiples suscriptoresMúltiples publicadores/Múltiples suscriptores
Publicador/Distribuidor/Suscriptor
Publicador/Distribuidor/Suscriptor
Publicador/Distribuidor/Suscriptor
Suscriptores
Publicador/Distribuidor
Publicador/Distribuidor centralPublicador/Distribuidor centralPublicador/Distribuidor centralPublicador/Distribuidor central
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
• 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
Introducción a la replicación
Filtros de datos en artículos
Suscriptor
Filtro vertical
Filtro horizontal
234567
1A B C D E F
234567
1A B C D E F
234567
1A B E
36
2A B C D E F
Tabla A
Tabla B Publicador
Suscripciones
SuscriSuscriptorptor 3 3SuscriSuscriptorptor 3 3
SuscripSuscripción de inserción
ción de inserción
SuscripSuscripción de inserción
ción de inserciónPublicaPublicaciónción B BPublicaPublicaciónción B B
SuscriSuscriptorptor 2 2SuscriSuscriptorptor 2 2
Suscripción de inserción
Suscripción de inserción
Suscripción de inserción
Suscripción de inserción
SuscriSuscriptorptor 1 1SuscriSuscriptorptor 1 1
SuscripSuscripción de inserciónción de inserciónSuscripSuscripción de inserciónción de inserción
PublicaPublicaciónción A APublicaPublicaciónción A A
SuscripSuscripción de extracciónción de extracción
SuscripSuscripción de extracciónción de extracció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
Agentes de replicación
Tipos de replicación
BBDDBBDDBBDDBBDD
REPLICACIÓN DE INSTANTANEASREPLICACIÓN DE INSTANTANEAS
REPLICACIÓN TRANSACCIONALREPLICACIÓN TRANSACCIONAL
REPLICACIÓN DE MEZCLAREPLICACIÓN DE MEZCLA
REPLICACIÓN TRANSACCIONAL CONREPLICACIÓN TRANSACCIONAL CON SUSCRIPCIONES DE ACTUALIZACIÓNSUSCRIPCIONES DE ACTUALIZACIÓN
Modelo de replicación transaccional
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
Configuración
Sql Server Management Studio
Sql Server Management Studio
Conexión a Servidor Sql server
Conexión a Servidor Sql MobileConexión a Servidor de análisisConexión a Servidor DTS
Conexión a Servidor de informes
Sql Server Management Studio
Configuración de replicación
Configuración de replicación
Configuración de replicación
Configuración de replicaciónTRANSACCIONAL
Configuración de replicación
Configuración de replicación
Configuración de replicación
Configuración de replicación
Creación de suscripción
Creación de suscripción
Creación de suscripción
Creación de suscripción
Creación de suscripción
Creación de suscripción
Demo: suscripción de extracción
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Instalación de Sqlce30setupen.msiInstalación de Sqlce30setupen.msi
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Duplicación en Sql Server Mobile
Demo: Replicación a Sql Server Mobile Edition
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
• 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
Acceso a Datos remotos (RDA)
Método 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() rda.InternetLogin = "MyLogin" rda.InternetPassword = "<password>" rda.InternetUrl = "http://www.northwindtraders.com/sqlce/sscesa20.dll" rda.LocalConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\ssce.sdf" rda.Pull("Employees", "Select * from Employees", rdaOleDbConnectString, RdaTrackOption.TrackingOnWithIndexes, "ErrorTable") Catch e As SqlCeException
'Use your own error handling routine. 'ShowErrors(e)
Finally 'Dispose of the RDA object.rda.Dispose() End Try
Método 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() rda.InternetLogin = "MyLogin" rda.InternetPassword = "<password>“rda.InternetUrl = "http://www.northwindtraders.com/sqlce/sscesa20.dll“rda.LocalConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\ssce.sdf" rda.Push("MyLocalTable", rdaOleDbConnectString, RdaBatchOption.BatchingOn)
Catch e As SqlCeException'Use you own Error Handling Routine.'ShowErrors(e)
Finally'Dispose of the RDA object. da.Dispose()
End Try
Método 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 = NothingTry 'Try the Pull operation.rda = New SqlCeRemoteDataAccess()rda.InternetLogin = "MyLogin“rda.InternetPassword = "<password>“rda.InternetUrl = "http://www.northwindtraders.com/sqlce/sscesa20.dll“rda.LocalConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\ssce.sdf" rda.SubmitSql("MyLocalTable", rdaOleDbConnectString)Catch e As SqlCeException
'Use you own Error Handling Routine.'ShowErrors(e)Finally
'Dispose of the RDA object.
rda.Dispose()End Try
• Notas a tener en cuenta– Para realizar una operación PULL la tabla destino
NO debe existir, por lo que antes se debe realizar un DROP TABLE
– Sólo se puede realizar un PULL por tabla– Por cada PULL se pueden múltiples PUSH
Acceso a Datos remotos (RDA)
Replicación CE
• Sólo MERGE es válida en SQL Server CE– Snapshot y Transactional no disponibles
• Requiere SQL Server 2000– Particionamiento vertical y horizontal– Filtros dinámicos horizontales– Columnas de identidad automáticas– Resolución de conflictos
• Estándares• Definidos por el usuario
• Terminología– Distribuidor (Distributor)
• Proceso encargado de manejar la distribución de los datos a un suscriptor.
• Se ejecuta a través del agente de SQL Server (HTTP)
– Publicación (Publication)• Definición de los datos de la BBDD que estarán disponibles
para la replicación
– Suscriptor (Subscriber)• Aplicación que consume datos procedentes de una publicación• Opcionalmente puede enviar datos a dicha publicación
Replicación CE
Replicación CE (API’s)
• System.Data.SQLServerCe.Engine.CreateDatabase– Reemplaza el método AddSubscription– Crea una base de datos en blanco
• System.Data.SQLServerCe.Replicacion.Synchronize– Realiza la sincronización inicial
• Crea el esquema, descarga datos, crea restricciones
– Realiza las sincronizaciones siguientes• Envía datos modificados al servidor• Recoge los datos modificados del servidor
Replicación CE
• Ventajas de la replicación– A diferencia de RDA, la replicación es en los dos
sentidos• Tanto el servidor como el cliente son sincronizados y
actualizados
• No es necesario borrar las tablas del cliente
– Resolución de conflictos automática• Configurable por el administrador de la BBDD
Limitaciones
• No se permite utilizar simultáneamente RDA y replicación sobre la misma tabla
• No se pueden crear varias publicaciones (necesarias para las replicaciones) sobre la misma tabla para el mismo cliente
Novedades Replicación SQL Server 2005
Novedades
Configuración de replicación a Oracle
Configuración de suscripción web
Configuración de suscripción web
Próximas 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.
Boletín quincenal TechNews
Contactos
• Informática 64– http://www.informatica64.com– [email protected]– +34 91 665 99 98
• Profesor– [email protected]