SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
REPLICACION SQL SERVER




BASES DE DATOS UES 2012
REPLICACION SQL SERVER

SQL Server : replicación
La replicación es un conjunto de tecnologías para copiar y distribuir datos y objetos de bases de
datos de una base de datos a otra y, a continuación, sincronizar las diferentes bases de datos para
mantener la coherencia. Mediante la replicación, podrá distribuir los datos a diferentes
ubicaciones y usuarios remotos o móviles a través de redes de área local y extensa, conexiones de
acceso telefónico, conexiones inalámbricas e Internet.

El tipo de replicación que se elige para una aplicación depende de muchos factores, como el
entorno físico de la replicación, el tipo y la cantidad de datos que se desean replicar y si los datos
se actualizan en el suscriptor. El entorno físico incluye el número y la ubicación de los equipos que
participan en la replicación, y si estos equipos son clientes (estaciones de trabajo, equipos
portátiles o dispositivos de mano) o servidores.

Por lo general, cada tipo de replicación comienza con una sincronización inicial de los objetos
publicados entre el publicador y los suscriptores. Esta sincronización inicial puede llevarse a cabo
mediante la replicación con una instantánea, que es una copia de todos los objetos y datos
especificados por una publicación. Una vez creada la instantánea, se envía a los suscriptores. Para
algunas aplicaciones, la replicación de instantáneas es lo único que se necesita. Para otros tipos de
aplicaciones, es importante que los cambios de datos posteriores fluyan al suscriptor de forma
incremental a lo largo del tiempo. Algunas aplicaciones también requieren que los cambios
vuelvan del suscriptor al publicador. La replicación transaccional y la replicación de mezcla
proporcionan opciones para estos tipos de aplicaciones.




    1. Replicación transaccional.
Por lo general, la replicación de transacciones se usa en escenarios de servidor a servidor, que
requieren un rendimiento alto, donde se incluye: la mejora de la escalabilidad y disponibilidad; el
almacenamiento datos y generación de informes; la integración de datos desde múltiples sitios; la
integración de datos heterogéneos y la descarga de procesamiento por lotes.

¿Cómo funciona la replicación transaccional?

La replicación transaccional se implementa con el Agente de instantáneas, el Agente de registro del LOG y el
Agente de distribución de SQL Server. El Agente de instantáneas prepara archivos de instantáneas que
contienen esquemas y datos de las tablas y objetos de base de datos publicados, almacena los archivos en la
carpeta de instantáneas y registra los trabajos de sincronización en la base de datos de distribución del
distribuidor.

 El Agente de registro del LOG supervisa el registro de transacciones de cada base de datos configurada
 para la replicación transaccional y copia las transacciones marcadas para ser replicadas desde el registro de
 transacciones a la base de datos de distribución, que actúa como una cola de almacenamiento y reenvío
 confiable. El Agente de distribución copia los archivos de instantáneas iníciales de la carpeta de



BASES DE DATOS UES 2012
REPLICACION SQL SERVER
instantáneas y las transacciones almacenadas en las tablas de la base de datos de distribución a los
suscriptores.

Los cambios incrementales realizados en el publicador se transfieren a los suscriptores de acuerdo con la
programación del Agente de distribución, que se puede ejecutar continuamente para que la latencia sea
mínima o a intervalos programados. Puesto que los datos deben cambiarse en el publicador (cuando se
utiliza la replicación transaccional sin las opciones de actualización inmediata ni de actualización en cola), se
evita que se produzcan conflictos de actualización. Al final, todos los suscriptores disponen de los mismos
valores que el publicador. Si se utilizan las opciones de actualización inmediata o de actualización en cola
con la replicación transaccional, las actualizaciones pueden realizarse en el suscriptor y, con la actualización
en cola, pueden producirse conflictos.

En la siguiente ilustración se muestran los principales componentes de la replicación transaccional.




BASES DE DATOS UES 2012
REPLICACION SQL SERVER



Conjunto de datos inicial.

Antes de que un suscriptor de replicación transaccional pueda recibir los cambios incrementales desde un
publicador, debe contener tablas con el mismo esquema y los mismos datos que las tablas del publicador. El
conjunto de datos inicial es normalmente una instantánea que se crea con el Agente de instantáneas y se
distribuye y aplica a través del Agente de distribución. También se puede suministrar el conjunto de datos
inicial mediante una copia de seguridad u otro medio, como SQL Server Integration Services.

Cuando se distribuyen y se aplican instantáneas a los suscriptores, solo se ven afectados los suscriptores que
estén esperando instantáneas iniciales. Otros suscriptores de esa publicación (aquellos que ya se han
inicializado) no se ven afectados.




Procesamiento simultaneo de instantáneas.
La replicación de instantáneas coloca bloqueos compartidos en todas las tablas publicadas como parte de la
replicación mientras dure la generación de instantáneas. Así se puede evitar que se realicen actualizaciones
en las tablas de publicación. El procesamiento simultáneo de instantáneas, que es el valor predeterminado
con la replicación transaccional, no mantiene los bloqueos compartidos durante la generación completa de
la instantánea, lo que permite a los usuarios continuar el trabajo sin interrupción mientras la replicación
crea los archivos de instantáneas iniciales.




Agente de instantáneas.

Los procedimientos por los que el Agente de instantáneas implementa la instantánea inicial en la replicación
transaccional son los mismos que se utilizan en la replicación de instantáneas (excepto en lo indicado
anteriormente acerca del procesamiento simultáneo de instantáneas).

Después de generarse los archivos de instantáneas, podrá verlos en la carpeta de instantáneas mediante el
Explorador de Microsoft Windows.




Modificar datos y el agente de registro LOG
El Agente de registro del LOG se ejecuta en el distribuidor. Normalmente se ejecuta de forma
continua, pero también puede hacerlo siguiendo una programación establecida. Al ejecutarse, el
Agente de registro del LOG lee primero el registro de transacciones de la publicación (el mismo
registro de la base de datos que se utiliza para el seguimiento de las transacciones y la
 recuperación durante las operaciones normales del motor de base de datos de SQL Server) e
 identifica las instrucciones INSERT, UPDATE y DELETE, u otras modificaciones efectuadas en los
 datos de las transacciones que se hayan marcado para ser replicadas. A continuación, el agente


BASES DE DATOS UES 2012
REPLICACION SQL SERVER
copia por lotes dichas transacciones a la base de datos de distribución del distribuidor. El
Agente de registro del LOG utiliza el procedimiento almacenado interno sp_replcmds para
obtener el siguiente conjunto de comandos marcados para replicación desde el registro. La base
de datos de distribución se convierte así en una cola de almacenamiento y reenvío desde la que se
envían los cambios a los suscriptores. A la base de datos de distribución solo se envían las
transacciones confirmadas.

El lote completo de transacciones se confirma después de que se ha escrito correctamente en la
base de datos de distribución. A continuación de la confirmación de cada lote de comandos en el
distribuidor, el Agente de registro del LOG llama a sp_repldone para marcar hasta dónde se ha
llegado en la replicación. Por último, el agente marca las filas del registro de transacciones que
están listas para ser purgadas. Las filas que están en espera de ser replicadas no se purgan.

Los comandos de transacción se almacenan en la base de datos de distribución hasta que se
propagan a todos los suscriptores o hasta que se ha alcanzado el período máximo de retención de
distribución. Los suscriptores recibirán las transacciones en el mismo orden en que fueron
aplicadas en el publicador.



Agente de distribución
El Agente de distribución se ejecuta en el distribuidor para las suscripciones de inserción y en el suscriptor
para las suscripciones de extracción. El Agente mueve las transacciones desde la base de datos de
distribución al suscriptor. Si se ha marcado una suscripción para validarla, el Agente de distribución
comprueba también si los datos en el publicador y en el suscriptor coinciden.




    2. Replicación de mezcla.
La replicación de mezcla se ha diseñado principalmente para aplicaciones móviles que presentan
posibles conflictos de datos. Los escenarios comunes incluyen: intercambio de datos con usuarios
móviles; aplicaciones de puntos de venta (POS) para el consumidor e integración de datos desde
varias ubicaciones.

La replicación de mezcla, como la replicación transaccional, normalmente se inicia con una
instantánea de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y
las modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los
suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el
publicador cuando están conectados a la red e intercambian todas las filas que han cambiado
  entre el publicador y el suscriptor desde la última vez que se produjo la sincronización.




BASES DE DATOS UES 2012
REPLICACION SQL SERVER




La replicación de mezcla se suele utilizar en entornos de servidor a cliente. La replicación de
mezcla es adecuada en las siguientes situaciones:

       Varios suscriptores actualizan los mismos datos en diferentes ocasiones y propagan los
        cambios al publicador y a otros suscriptores.

       Los suscriptores necesitan recibir datos, realizar cambios sin conexión y sincronizar más
        adelante los cambios con el publicador y otros suscriptores.

       Cada suscriptor requiere una partición de datos diferente.

       Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos.

       La aplicación requiere el cambio de datos neto en lugar de acceso a los estados
        intermedios de los datos. Por ejemplo, si una fila cambia cinco veces en el suscriptor antes
        de que éste se sincronice con el publicador, la fila cambiará solo una vez en el publicador
        para reflejar el cambio de datos neto (es decir, el quinto valor).

La replicación de mezcla permite que diferentes sitios funcionen de forma autónoma y, después,
mezclen las actualizaciones en un solo resultado uniforme. Puesto que las actualizaciones tienen
lugar en más de un nodo, los mismos datos pueden haber sido actualizados por el publicador y por
más de un suscriptor. Por lo tanto, se pueden producir conflictos al mezclar las actualizaciones y la
replicación de mezcla proporciona varias maneras de controlar los conflictos.

El Agente de instantáneas y el Agente de mezcla de SQL Server implementan la replicación de
mezcla. Si la publicación no se filtra o utiliza filtros estáticos, el Agente de instantáneas crea una
sola instantánea. Si la publicación utiliza filtros con parámetros, el Agente de instantáneas crea
una instantánea para cada partición de datos. El Agente de mezcla aplica las instantáneas iniciales
a los suscriptores. También combina los cambios incrementales de los datos que tienen lugar en el
publicador o en los suscriptores después de la creación de la instantánea inicial y detecta y
resuelve los conflictos según las reglas que configure.

Para realizar un seguimiento de los cambios, la replicación de mezcla (y la replicación transaccional
con suscripciones de actualización en cola) deben poder identificar de forma única cada fila de
todas las tablas publicadas. Para conseguirlo, l.La replicación de mezcla agrega la
columna rowguid a todas las tablas, a menos que la tabla ya tenga una columna del tipo de
datos uniqueidentifier con la propiedad ROWGUIDCOL definida (en cuyo caso se usa dicha
columna). Si la tabla se quita de la publicación, la columna rowguid se quita; si se ha usado una
 columna existente para realizar el seguimiento, la columna no se quita. Un filtro no debe incluir
 la columna rowguidcol que usa la replicación para identificar filas. La función newid() se
 proporciona como valor predeterminado para la columna de rowguid; no obstante, los clientes



BASES DE DATOS UES 2012
REPLICACION SQL SERVER
pueden proporcionar un GUID para cada fila si es necesario. Sin embargo, no proporcione el
valor 00000000-0000-0000-0000-000000000000.



En el siguiente diagrama se muestran los componentes que se utilizan en la replicación de mezcla.




BASES DE DATOS UES 2012

Más contenido relacionado

La actualidad más candente

Replicación SQL Server 2008
Replicación SQL Server 2008Replicación SQL Server 2008
Replicación SQL Server 2008UTA
 
Replica de SQL Server 2008
Replica de SQL Server 2008Replica de SQL Server 2008
Replica de SQL Server 2008UTA
 
- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -Tōshirō Hitsugaya
 
Implementación de replicación de base de datos con servicio de replication se...
Implementación de replicación de base de datos con servicio de replication se...Implementación de replicación de base de datos con servicio de replication se...
Implementación de replicación de base de datos con servicio de replication se...Juan Carlos Castillo Sanchez
 
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...Sergio E. Sánchez
 
Herramientas De Control Y Monitoreo
Herramientas De Control Y MonitoreoHerramientas De Control Y Monitoreo
Herramientas De Control Y Monitoreoelylupita
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysqlGiovanni Peruch
 
Herramientas De Control De B D
Herramientas De Control De B DHerramientas De Control De B D
Herramientas De Control De B DRafa
 
Herramientas Control, Monitoreo Y Estadisticas De Bases De Datos Sql
Herramientas Control, Monitoreo Y Estadisticas De Bases De Datos SqlHerramientas Control, Monitoreo Y Estadisticas De Bases De Datos Sql
Herramientas Control, Monitoreo Y Estadisticas De Bases De Datos SqlOlaya Molina
 
Base de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidorBase de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidorJonathan
 

La actualidad más candente (20)

MANUAL DE REPLICACIÓN SQL SERVER 2008
MANUAL DE REPLICACIÓN SQL SERVER 2008MANUAL DE REPLICACIÓN SQL SERVER 2008
MANUAL DE REPLICACIÓN SQL SERVER 2008
 
Replicación transaccional-actualizable
Replicación transaccional-actualizableReplicación transaccional-actualizable
Replicación transaccional-actualizable
 
Replicación SQL Server 2008
Replicación SQL Server 2008Replicación SQL Server 2008
Replicación SQL Server 2008
 
Replica de SQL Server 2008
Replica de SQL Server 2008Replica de SQL Server 2008
Replica de SQL Server 2008
 
Expo replicación
Expo replicaciónExpo replicación
Expo replicación
 
Replicación de Bases de Datos con SQL Server 2008
Replicación de Bases de Datos con SQL Server 2008Replicación de Bases de Datos con SQL Server 2008
Replicación de Bases de Datos con SQL Server 2008
 
- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -
 
Implementación de replicación de base de datos con servicio de replication se...
Implementación de replicación de base de datos con servicio de replication se...Implementación de replicación de base de datos con servicio de replication se...
Implementación de replicación de base de datos con servicio de replication se...
 
Tarea1 1
Tarea1 1Tarea1 1
Tarea1 1
 
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
 
Herramientas De Control Y Monitoreo
Herramientas De Control Y MonitoreoHerramientas De Control Y Monitoreo
Herramientas De Control Y Monitoreo
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
 
Herramientas De Control De B D
Herramientas De Control De B DHerramientas De Control De B D
Herramientas De Control De B D
 
Herramientas de control,monitoreoy estadistica de bd
Herramientas de control,monitoreoy estadistica de bdHerramientas de control,monitoreoy estadistica de bd
Herramientas de control,monitoreoy estadistica de bd
 
Herramientas Control, Monitoreo Y Estadisticas De Bases De Datos Sql
Herramientas Control, Monitoreo Y Estadisticas De Bases De Datos SqlHerramientas Control, Monitoreo Y Estadisticas De Bases De Datos Sql
Herramientas Control, Monitoreo Y Estadisticas De Bases De Datos Sql
 
Bases de datos distribuidas
Bases de datos distribuidasBases de datos distribuidas
Bases de datos distribuidas
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Copia de-mandante
Copia de-mandanteCopia de-mandante
Copia de-mandante
 
Diapositivas de jdbc
Diapositivas de jdbcDiapositivas de jdbc
Diapositivas de jdbc
 
Base de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidorBase de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidor
 

Similar a Replicacion sql server

SNAPSHOT – MEZCLA - TRANSACCIONAL)
SNAPSHOT – MEZCLA - TRANSACCIONAL)SNAPSHOT – MEZCLA - TRANSACCIONAL)
SNAPSHOT – MEZCLA - TRANSACCIONAL)Juan Calvache
 
Componentes De SQL Server
Componentes De  SQL ServerComponentes De  SQL Server
Componentes De SQL ServerJhon Perez
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemasOscar Centeno
 
Replicacion sql server... fernando quezada
Replicacion sql server... fernando quezadaReplicacion sql server... fernando quezada
Replicacion sql server... fernando quezadaNasterf Q
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxXavierNavia
 
ARQUITECTURA CLIENTE SERVIDOR
ARQUITECTURA CLIENTE SERVIDORARQUITECTURA CLIENTE SERVIDOR
ARQUITECTURA CLIENTE SERVIDORlenin rojas
 
Arquitecturas de software
Arquitecturas de software Arquitecturas de software
Arquitecturas de software Anel Sosa
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclienttvazamar
 
Diseño de aplicaciones
Diseño de aplicacionesDiseño de aplicaciones
Diseño de aplicacionesUTN
 

Similar a Replicacion sql server (20)

Replica de datos
Replica de datos Replica de datos
Replica de datos
 
Replicas
ReplicasReplicas
Replicas
 
REPLICAS SQL SERVER
REPLICAS SQL SERVERREPLICAS SQL SERVER
REPLICAS SQL SERVER
 
SNAPSHOT – MEZCLA - TRANSACCIONAL)
SNAPSHOT – MEZCLA - TRANSACCIONAL)SNAPSHOT – MEZCLA - TRANSACCIONAL)
SNAPSHOT – MEZCLA - TRANSACCIONAL)
 
Clientes servidor
Clientes servidorClientes servidor
Clientes servidor
 
Componentes De SQL Server
Componentes De  SQL ServerComponentes De  SQL Server
Componentes De SQL Server
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemas
 
Replicacion sql server... fernando quezada
Replicacion sql server... fernando quezadaReplicacion sql server... fernando quezada
Replicacion sql server... fernando quezada
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
ARQSQL.docx
ARQSQL.docxARQSQL.docx
ARQSQL.docx
 
Clase03
Clase03Clase03
Clase03
 
Arquitectura centralizada
Arquitectura centralizadaArquitectura centralizada
Arquitectura centralizada
 
ARQUITECTURA CLIENTE SERVIDOR
ARQUITECTURA CLIENTE SERVIDORARQUITECTURA CLIENTE SERVIDOR
ARQUITECTURA CLIENTE SERVIDOR
 
Replicacion sql server
Replicacion  sql serverReplicacion  sql server
Replicacion sql server
 
Arquitecturas de software
Arquitecturas de software Arquitecturas de software
Arquitecturas de software
 
Diccionario 2
Diccionario 2Diccionario 2
Diccionario 2
 
4 Sistemas Operativos De Red
4 Sistemas Operativos De Red4 Sistemas Operativos De Red
4 Sistemas Operativos De Red
 
Arquitecturas centralizadas
Arquitecturas centralizadasArquitecturas centralizadas
Arquitecturas centralizadas
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclient
 
Diseño de aplicaciones
Diseño de aplicacionesDiseño de aplicaciones
Diseño de aplicaciones
 

Replicacion sql server

  • 1. REPLICACION SQL SERVER BASES DE DATOS UES 2012
  • 2. REPLICACION SQL SERVER SQL Server : replicación La replicación es un conjunto de tecnologías para copiar y distribuir datos y objetos de bases de datos de una base de datos a otra y, a continuación, sincronizar las diferentes bases de datos para mantener la coherencia. Mediante la replicación, podrá distribuir los datos a diferentes ubicaciones y usuarios remotos o móviles a través de redes de área local y extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet. El tipo de replicación que se elige para una aplicación depende de muchos factores, como el entorno físico de la replicación, el tipo y la cantidad de datos que se desean replicar y si los datos se actualizan en el suscriptor. El entorno físico incluye el número y la ubicación de los equipos que participan en la replicación, y si estos equipos son clientes (estaciones de trabajo, equipos portátiles o dispositivos de mano) o servidores. Por lo general, cada tipo de replicación comienza con una sincronización inicial de los objetos publicados entre el publicador y los suscriptores. Esta sincronización inicial puede llevarse a cabo mediante la replicación con una instantánea, que es una copia de todos los objetos y datos especificados por una publicación. Una vez creada la instantánea, se envía a los suscriptores. Para algunas aplicaciones, la replicación de instantáneas es lo único que se necesita. Para otros tipos de aplicaciones, es importante que los cambios de datos posteriores fluyan al suscriptor de forma incremental a lo largo del tiempo. Algunas aplicaciones también requieren que los cambios vuelvan del suscriptor al publicador. La replicación transaccional y la replicación de mezcla proporcionan opciones para estos tipos de aplicaciones. 1. Replicación transaccional. Por lo general, la replicación de transacciones se usa en escenarios de servidor a servidor, que requieren un rendimiento alto, donde se incluye: la mejora de la escalabilidad y disponibilidad; el almacenamiento datos y generación de informes; la integración de datos desde múltiples sitios; la integración de datos heterogéneos y la descarga de procesamiento por lotes. ¿Cómo funciona la replicación transaccional? La replicación transaccional se implementa con el Agente de instantáneas, el Agente de registro del LOG y el Agente de distribución de SQL Server. El Agente de instantáneas prepara archivos de instantáneas que contienen esquemas y datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantáneas y registra los trabajos de sincronización en la base de datos de distribución del distribuidor. El Agente de registro del LOG supervisa el registro de transacciones de cada base de datos configurada para la replicación transaccional y copia las transacciones marcadas para ser replicadas desde el registro de transacciones a la base de datos de distribución, que actúa como una cola de almacenamiento y reenvío confiable. El Agente de distribución copia los archivos de instantáneas iníciales de la carpeta de BASES DE DATOS UES 2012
  • 3. REPLICACION SQL SERVER instantáneas y las transacciones almacenadas en las tablas de la base de datos de distribución a los suscriptores. Los cambios incrementales realizados en el publicador se transfieren a los suscriptores de acuerdo con la programación del Agente de distribución, que se puede ejecutar continuamente para que la latencia sea mínima o a intervalos programados. Puesto que los datos deben cambiarse en el publicador (cuando se utiliza la replicación transaccional sin las opciones de actualización inmediata ni de actualización en cola), se evita que se produzcan conflictos de actualización. Al final, todos los suscriptores disponen de los mismos valores que el publicador. Si se utilizan las opciones de actualización inmediata o de actualización en cola con la replicación transaccional, las actualizaciones pueden realizarse en el suscriptor y, con la actualización en cola, pueden producirse conflictos. En la siguiente ilustración se muestran los principales componentes de la replicación transaccional. BASES DE DATOS UES 2012
  • 4. REPLICACION SQL SERVER Conjunto de datos inicial. Antes de que un suscriptor de replicación transaccional pueda recibir los cambios incrementales desde un publicador, debe contener tablas con el mismo esquema y los mismos datos que las tablas del publicador. El conjunto de datos inicial es normalmente una instantánea que se crea con el Agente de instantáneas y se distribuye y aplica a través del Agente de distribución. También se puede suministrar el conjunto de datos inicial mediante una copia de seguridad u otro medio, como SQL Server Integration Services. Cuando se distribuyen y se aplican instantáneas a los suscriptores, solo se ven afectados los suscriptores que estén esperando instantáneas iniciales. Otros suscriptores de esa publicación (aquellos que ya se han inicializado) no se ven afectados. Procesamiento simultaneo de instantáneas. La replicación de instantáneas coloca bloqueos compartidos en todas las tablas publicadas como parte de la replicación mientras dure la generación de instantáneas. Así se puede evitar que se realicen actualizaciones en las tablas de publicación. El procesamiento simultáneo de instantáneas, que es el valor predeterminado con la replicación transaccional, no mantiene los bloqueos compartidos durante la generación completa de la instantánea, lo que permite a los usuarios continuar el trabajo sin interrupción mientras la replicación crea los archivos de instantáneas iniciales. Agente de instantáneas. Los procedimientos por los que el Agente de instantáneas implementa la instantánea inicial en la replicación transaccional son los mismos que se utilizan en la replicación de instantáneas (excepto en lo indicado anteriormente acerca del procesamiento simultáneo de instantáneas). Después de generarse los archivos de instantáneas, podrá verlos en la carpeta de instantáneas mediante el Explorador de Microsoft Windows. Modificar datos y el agente de registro LOG El Agente de registro del LOG se ejecuta en el distribuidor. Normalmente se ejecuta de forma continua, pero también puede hacerlo siguiendo una programación establecida. Al ejecutarse, el Agente de registro del LOG lee primero el registro de transacciones de la publicación (el mismo registro de la base de datos que se utiliza para el seguimiento de las transacciones y la recuperación durante las operaciones normales del motor de base de datos de SQL Server) e identifica las instrucciones INSERT, UPDATE y DELETE, u otras modificaciones efectuadas en los datos de las transacciones que se hayan marcado para ser replicadas. A continuación, el agente BASES DE DATOS UES 2012
  • 5. REPLICACION SQL SERVER copia por lotes dichas transacciones a la base de datos de distribución del distribuidor. El Agente de registro del LOG utiliza el procedimiento almacenado interno sp_replcmds para obtener el siguiente conjunto de comandos marcados para replicación desde el registro. La base de datos de distribución se convierte así en una cola de almacenamiento y reenvío desde la que se envían los cambios a los suscriptores. A la base de datos de distribución solo se envían las transacciones confirmadas. El lote completo de transacciones se confirma después de que se ha escrito correctamente en la base de datos de distribución. A continuación de la confirmación de cada lote de comandos en el distribuidor, el Agente de registro del LOG llama a sp_repldone para marcar hasta dónde se ha llegado en la replicación. Por último, el agente marca las filas del registro de transacciones que están listas para ser purgadas. Las filas que están en espera de ser replicadas no se purgan. Los comandos de transacción se almacenan en la base de datos de distribución hasta que se propagan a todos los suscriptores o hasta que se ha alcanzado el período máximo de retención de distribución. Los suscriptores recibirán las transacciones en el mismo orden en que fueron aplicadas en el publicador. Agente de distribución El Agente de distribución se ejecuta en el distribuidor para las suscripciones de inserción y en el suscriptor para las suscripciones de extracción. El Agente mueve las transacciones desde la base de datos de distribución al suscriptor. Si se ha marcado una suscripción para validarla, el Agente de distribución comprueba también si los datos en el publicador y en el suscriptor coinciden. 2. Replicación de mezcla. La replicación de mezcla se ha diseñado principalmente para aplicaciones móviles que presentan posibles conflictos de datos. Los escenarios comunes incluyen: intercambio de datos con usuarios móviles; aplicaciones de puntos de venta (POS) para el consumidor e integración de datos desde varias ubicaciones. La replicación de mezcla, como la replicación transaccional, normalmente se inicia con una instantánea de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y las modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el publicador cuando están conectados a la red e intercambian todas las filas que han cambiado entre el publicador y el suscriptor desde la última vez que se produjo la sincronización. BASES DE DATOS UES 2012
  • 6. REPLICACION SQL SERVER La replicación de mezcla se suele utilizar en entornos de servidor a cliente. La replicación de mezcla es adecuada en las siguientes situaciones:  Varios suscriptores actualizan los mismos datos en diferentes ocasiones y propagan los cambios al publicador y a otros suscriptores.  Los suscriptores necesitan recibir datos, realizar cambios sin conexión y sincronizar más adelante los cambios con el publicador y otros suscriptores.  Cada suscriptor requiere una partición de datos diferente.  Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos.  La aplicación requiere el cambio de datos neto en lugar de acceso a los estados intermedios de los datos. Por ejemplo, si una fila cambia cinco veces en el suscriptor antes de que éste se sincronice con el publicador, la fila cambiará solo una vez en el publicador para reflejar el cambio de datos neto (es decir, el quinto valor). La replicación de mezcla permite que diferentes sitios funcionen de forma autónoma y, después, mezclen las actualizaciones en un solo resultado uniforme. Puesto que las actualizaciones tienen lugar en más de un nodo, los mismos datos pueden haber sido actualizados por el publicador y por más de un suscriptor. Por lo tanto, se pueden producir conflictos al mezclar las actualizaciones y la replicación de mezcla proporciona varias maneras de controlar los conflictos. El Agente de instantáneas y el Agente de mezcla de SQL Server implementan la replicación de mezcla. Si la publicación no se filtra o utiliza filtros estáticos, el Agente de instantáneas crea una sola instantánea. Si la publicación utiliza filtros con parámetros, el Agente de instantáneas crea una instantánea para cada partición de datos. El Agente de mezcla aplica las instantáneas iniciales a los suscriptores. También combina los cambios incrementales de los datos que tienen lugar en el publicador o en los suscriptores después de la creación de la instantánea inicial y detecta y resuelve los conflictos según las reglas que configure. Para realizar un seguimiento de los cambios, la replicación de mezcla (y la replicación transaccional con suscripciones de actualización en cola) deben poder identificar de forma única cada fila de todas las tablas publicadas. Para conseguirlo, l.La replicación de mezcla agrega la columna rowguid a todas las tablas, a menos que la tabla ya tenga una columna del tipo de datos uniqueidentifier con la propiedad ROWGUIDCOL definida (en cuyo caso se usa dicha columna). Si la tabla se quita de la publicación, la columna rowguid se quita; si se ha usado una columna existente para realizar el seguimiento, la columna no se quita. Un filtro no debe incluir la columna rowguidcol que usa la replicación para identificar filas. La función newid() se proporciona como valor predeterminado para la columna de rowguid; no obstante, los clientes BASES DE DATOS UES 2012
  • 7. REPLICACION SQL SERVER pueden proporcionar un GUID para cada fila si es necesario. Sin embargo, no proporcione el valor 00000000-0000-0000-0000-000000000000. En el siguiente diagrama se muestran los componentes que se utilizan en la replicación de mezcla. BASES DE DATOS UES 2012