Sie sind auf Seite 1von 65

Cdigo: HOL-SQL09

Microsoft SQL Server 2005 Replication Services


Ruben Alonso Cebrian ralonso@informatica64.com

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 Sqlce30setupen.msi

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)


System.Data.SQLServerCe.SqlceRemoteDa taAccess.Pull
Obtener datos del servidor (online) Se obtienen los datos seleccionados mediante una consulta en SQL Crea una nueva tabla local

System.Data.SQLServerCe.RemoteDataAcc ess.Push
Enva las modificaciones realizadas al servidor

Acceso a Datos remotos (RDA)


System.Data.SQLServerCe.RemoteDataAccess.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() 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

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

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

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)
System.Data.SQLServerCe.Engine.CreateDatabase
Reemplaza el mtodo AddSubscription Crea una base de datos en blanco

System.Data.SQLServerCe.Replicacion.Synchronize
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
http://www.informatica64.com i64@informatica64.com +34 91 665 99 98

Profesor
ralonso@informatica64.com

Das könnte Ihnen auch gefallen