Se aplica a
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

Síntomas

Durante la sincronización de la replicación de mezcla en Microsoft SQL Server 2008 y versiones posteriores de SQL Server, el agente de combinación puede producir un error. Además, recibirá el siguiente mensaje de error:

Error en el Agente de mezcla después de detectar que la limpieza de metadatos basada en la retención ha eliminado metadatos en el suscriptor para los cambios que aún no se han enviado al publicador. Debe reinicializar la suscripción (sin cargarla). (Fuente: MSSQL_REPL, número de error: MSSQL_REPL-2147199401) Obtén ayuda: http://help/MSSQL_REPL-2147199401

Este problema puede producirse por varias razones. Estas incluyen muchas razones que se esperan bajo ciertas circunstancias. Para determinar si ha encontrado este error inesperadamente, examine los detalles de metadatos que se describen en la sección "Causa".

Causa

La causa de este problema se puede encontrar en las tablas del sistema siguientes en el suscriptor:

  • dbo.sysMergeSubscriptions

  • dbo.MsMerge_Genhistory

Asegúrese de que el agente de mezcla ya no se está sincronizando. A continuación, ejecute la siguiente consulta y examine los resultados:

seleccionar sentgen de SubscriberDB.dbo.sysMergeSubscriptions donde pubid - subid y sentgen no es nulo Query results La columna sentgen marca el grupo más antiguo de cambios que el suscriptor envió al editor. Si se devuelven varios valores, examine las demás columnas de la tabla dbo.sysMergeSubscriptions para asegurarse de que está viendo los metadatos de la publicación correcta. A continuación, utilice el valor que devuelve esta consulta en la siguiente consulta:

seleccione los 20 * principales de SubscriberDB.dbo.MSmerge_genhistory donde la generación > sentgen_value orden por generaciónEl resultado de la consulta Query result by generation debe ser similar al siguiente: puede encontrar el error inesperadamente cuando se cumplen todas las condiciones siguientes:

  • El valor de la columna de generación de la primera fila es ligeramente mayor que el valor sentgen de la consulta anterior.

  • El valor de la columna genstatus es 4.

  • El valor de la columna changecount es 0.

Nota El valor de la columna coldate de la primera fila también suele ser mucho más antiguo que el valor de esa columna en las otras filas.

Resolución

Para resolver este problema, reinicialice el suscriptor que produjo el error. En algunos escenarios, es posible que pueda resolver este problema sin una reinicialización completa. Póngase en contacto con los servicios de soporte al cliente de Microsoft para obtener información acerca de una posible solución alternativa. Para evitar futuras apariciones de este problema, aplique una de las siguientes correcciones, en función de la versión de SQL Server.

Información sobre la actualización acumulativa

SQL Server 2008

No hay ninguna corrección para este problema en SQL Server 2008.

SQL Server 2008 R2 Service Pack 2

La corrección de este problema se publicó por primera vez en la actualización acumulativa 3. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2754552 Paquete de actualización acumulativa 3 para SQL Server 2008 R2 Service Pack 2Nota Dado que las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión anterior de SQL Server 2008 R2 Service Pack 2. Se recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2730301 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que SE publicara SQL Server 2008 R2 Service Pack 2

SQL Server 2012

La corrección de este problema se publicó por primera vez en la actualización acumulativa 4. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2012, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2758687 Paquete de actualización acumulativa 4 para SQL Server 2012Nota Dado que las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión anterior de SQL Server 2012. Se recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2692828 Las compilaciones de SQL Server 2012 que se publicaron después de que se publicara SQL Server 2012

SQL Server 2008 R2 Service Pack 1

La corrección de este problema se publicó por primera vez en la actualización acumulativa 8. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 Service Pack 1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2723743 Paquete de actualización acumulativa 8 para SQL Server 2008 R2 SP1Nota Dado que las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión anterior de SQL Server 2008 R2 Service Pack 1. Se recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que SE publicara SQL Server 2008 R2 SP1

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.