microsoft sql server 2005 replication services ruben alonso cebrian [email protected]...

65
Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian [email protected] Código: HOL-SQL09

Upload: rufino-hernandes

Post on 03-Jan-2015

7 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Microsoft SQL Server 2005Replication Services

Ruben Alonso Cebrian

[email protected]

Código: HOL-SQL09

Page 2: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Introducción

Page 3: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 4: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 5: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 6: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 7: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

• 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

Page 8: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 9: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 10: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

– 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

Page 11: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 12: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Modelo de replicación transaccional

Page 13: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 14: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración

Page 15: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Sql Server Management Studio

Page 16: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 17: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Sql Server Management Studio

Page 18: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 19: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 20: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 21: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicaciónTRANSACCIONAL

Page 22: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 23: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 24: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 25: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de replicación

Page 26: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Creación de suscripción

Page 27: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Creación de suscripción

Page 28: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Creación de suscripción

Page 29: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Creación de suscripción

Page 30: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Creación de suscripción

Page 31: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Creación de suscripción

Page 32: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Demo: suscripción de extracción

Page 33: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 34: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Instalación de Sqlce30setupen.msiInstalación de Sqlce30setupen.msi

Page 35: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 36: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 37: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 38: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 39: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 40: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 41: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 42: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 43: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 44: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 45: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación en Sql Server Mobile

Page 46: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Demo: Replicación a Sql Server Mobile Edition

Page 47: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Duplicación de datos en Sql CE

Dos métodos:

• Acceso remoto a datos (RDA)

• Replicación de mezcla

Page 48: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 49: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

• 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)

Page 50: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

• 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)

Page 51: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 52: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 53: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 54: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

• 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)

Page 55: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 56: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

• 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

Page 57: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 58: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 59: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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

Page 60: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Novedades Replicación SQL Server 2005

Page 61: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Novedades

Configuración de replicación a Oracle

Configuración de suscripción web

Page 62: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Configuración de suscripción web

Page 63: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

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.

Page 64: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Boletín quincenal TechNews

Page 65: Microsoft SQL Server 2005 Replication Services Ruben Alonso Cebrian ralonso@informatica64.com Código: HOL-SQL09

Contactos

• Informática 64– http://www.informatica64.com– [email protected]– +34 91 665 99 98

• Profesor– [email protected]