Microsoft distribuye las revisiones Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) o Microsoft SQL Server 2012 en un archivo descargable. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las actualizaciones de seguridad incluidas en la versión anterior de SQL Server 2008 R2 Service Pack 1 (SP1) o Microsoft SQL Server 2012.

Síntomas

Imagine la siguiente situación:

  • Se crean al menos dos publicaciones de replicación transaccional basadas en una base de datos en Microsoft SQL Server 2008 R2 o en Microsoft SQL Server 2012.

  • Cada publicación tiene al menos un artículo. Los artículos no se superponen y cada artículo pertenece a una sola publicación.

  • Establezca la propiedad @sync_method de las publicaciones como simultáneas.

  • Establezca la propiedad @immediate_sync de las publicaciones en true.

  • Establece el parámetro MaxCmdsInTran del agente de lector del registro en un valor distinto de cero.

  • Una de las publicaciones recibe muchas inserciones en una transacción.

  • Una vez confirmada la transacción, el agente de lector del registro comienza a procesar y dividir la transacción según el parámetro MaxCmdsInTran .

  • El agente de instantáneas de otra publicación comienza antes de que el agente de lector del registro finalice la tarea.

En este escenario, se produce un error en el agente de lector del registro y recibe el siguiente mensaje de error:

El proceso no pudo ejecutar ' sp_MSadd_replcmds ' en ' Server\Instance '. (Origen: MSSQLServer, número de error: 1007) No se puede insertar una fila de clave duplicada en el objeto ' DBO. MSrepl_commands ' con índice único ' ucMSrepl_commands '. (Origen: MSSQLServer, número de error: 1007)

Resolución

Información sobre la actualización acumulativa

SQL Server 2012

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

2679368 Paquete de actualización acumulativa 1 para SQL Server 2012Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2012. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea 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 publicó SQL Server 2012 Debe aplicar una revisión de SQL Server 2012 a una instalación de SQL Server 2012.

Paquete de actualización acumulativa 4 para SQL Server 2008 R2 SP1

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

2633146 Paquete de actualización acumulativa 4 para SQL Server 2008 R2 SP1Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2 SP1. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea 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 publicó SQL Server 2008 R2 SP1

Solución alternativa

Para resolver este problema, utilice uno de los métodos siguientes:

  • No establezca la propiedad @sync_method de las publicaciones en "concurrente" y no establezca la propiedad @immediate_sync de las publicaciones en "true".

  • Establezca el valor del parámetro MaxCmdsInTran en cero.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cómo de satisfecho está con la calidad de la traducción?

¿Qué ha afectado a tu experiencia?

¿Algún comentario adicional? (Opcional)

¡Gracias por sus comentarios!

×