Applies ToSQL Server 2019 on Windows SQL Server 2022 on Linux (all editions) SQL Server 2022 on Windows (all editions)

Síntomas

El procedimiento almacenado sp_replmonitorsubscriptionpendingcmds no es compatible con la replicación de punto a punto (P2P). Devuelve un número incorrecto de comandos pendientes. Después de aplicar esta corrección, sp_replmonitorsubscriptionpendingcmds serán compatibles con la replicación P2P.

Nota La  pestaña "Comandos no distribuidos" de un Monitor de replicación invoca sp_replmonitorsubscriptionpendingcmds en segundo plano.

Solución

Información sobre la actualización acumulativa

Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:

Nota Después de aplicar esta actualización acumulativa, es posible que sp_replmonitorsubscriptionpendingcmds todavía notifique un número incorrecto de comandos pendientes para la replicación P2P si la tabla MSrepl_originators contiene entradas obsoletas.

Si la tabla MSrepl_originators contiene entradas obsoletas, al ejecutar sp_replmonitorsubscriptionpendingcmds se generará el siguiente mensaje de advertencia en el registro de errores de SQL Server:

Advertencia: No se puede obtener la versión de la base de datos de la base de datos de suscripción " <database_name>". La sp_replmonitorsubscriptionpendingcmdspuede notificar el número incorrecto de comandos pendientes para la replicación P2P.

Para resolver este problema, elimine las entradas obsoletas de MSrepl_originators o pase la "dbversion" correcta de una base de datos de suscripción como argumento subdb_version al ejecutar sp_replmonitorsubscriptionpendingcmds.

Sugerencias: Puede seleccionar uno de los siguientes métodos para buscar la "dbversion" de una base de datos de suscripción:

  • Ejecute la consulta siguiente en una base de datos de distribución: select dbversion from MSrepl_originatorswhere publisher_database_id = <Publisher_Database_ID>and srvname = <Subscriber_Server>and dbname = <Subscriber_Database>Nota Necesita sustituir valores adecuados por <Publisher_Database_ID>, <Subscriber_Server> y <Subscriber_Database>.

  • Ejecute la siguiente consulta en una base de datos de suscripción: declare @current_version int , @currentGuid uniqueidentifierselect @currentGuid = recovery_fork_guidfrom sys.database_recovery_statuswhere database_id = db_id()select @current_version = substring(convert(binary(16), isnull(@currentGuid, 0x0)),1,6)print @current_version

Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y correcciones de seguridad que se encontraban en la compilación anterior. Le recomendamos que instale la compilación más reciente para su versión de SQL Server:

Estado

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

Referencias

Obtén información sobre la terminología que usa Microsoft para describir las actualizaciones de software.

¿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.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.