Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La replicación de mezcla, al igual que la replicación transaccional, generalmente comienza con una instantánea de los objetos de la base de datos de publicación y los datos. Los cambios de datos y las modificaciones de esquema posteriores realizadas en el publicador y los suscriptores se rastrean con desencadenadores. El suscriptor se sincroniza con el publicador cuando está conectado a la red e intercambia todas las filas que han cambiado entre el publicador y el suscriptor desde la última vez que se produjo la sincronización.
La replicación de mezcla se utiliza generalmente en entornos de servidor a cliente. La replicación de mezcla es adecuada en cualquiera de las situaciones siguientes:
Varios suscriptores pueden actualizar los mismos datos en varias ocasiones y propagar esos cambios al publicador y a otros suscriptores.
Los suscriptores deben recibir datos, realizar cambios sin conexión y sincronizarlos posteriormente con el publicador y otros suscriptores.
Cada suscriptor requiere una partición de datos diferente.
Los conflictos pueden producirse y, cuando lo hacen, necesita la capacidad de detectarlos y resolverlos.
La aplicación requiere un cambio de datos netos en lugar de tener acceso a estados de datos intermedios. Por ejemplo, si una fila cambia cinco veces en un suscriptor antes de que se sincronice con un publicador, la fila cambiará solo una vez en el publicador para reflejar el cambio de datos netos (es decir, el quinto valor).
La replicación de mezcla permite que varios sitios funcionen de forma autónoma y, posteriormente, combinar actualizaciones en un único resultado uniforme. Dado que las actualizaciones se realizan en más de un nodo, el publicador puede haber actualizado los mismos datos y más de un suscriptor. Por lo tanto, los conflictos pueden producirse cuando las actualizaciones se combinan y la replicación de mezcla proporciona varias maneras de controlar los conflictos.
La replicación de combinación se implementa mediante el Agente de instantáneas de SQL Server y el Agente de combinación. Si la publicación no está filtrada o usa filtros estáticos, el Agente de instantáneas crea una sola instantánea. Si la publicación usa 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 datos que se produjeron en el publicador o los suscriptores después de crear 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 lograr esta replicación de mezcla, agrega la columna rowguid a cada tabla, a menos que la tabla ya tenga una columna de tipo uniqueidentifier de datos con el ROWGUIDCOL conjunto de propiedades (en cuyo caso se usa esta columna). Si la tabla se quita de la publicación, se quita la rowguid columna; si se ha usado una columna existente para el seguimiento, la columna no se quita. Un filtro no debe incluir la columna rowguidcol que usa la replicación para identificar filas. La newid() función se proporciona como valor predeterminado para la rowguid columna, pero los clientes pueden proporcionar un guid para cada fila si es necesario. Sin embargo, no proporcione el valor 00000000-0000-0000-0000-0000000000000.
En el diagrama siguiente se muestran los componentes usados en la replicación de mezcla.