Compartir a través de


sp_setsubscriptionxactseqno (Transact-SQL)

Se aplica a: SQL Server

Se usa durante la solución de problemas para especificar la última transacción entregada mediante el número de secuencia de registro (LSN), lo que permite que el Agente de distribución empiece a entregarse en la siguiente transacción. Después de reiniciarse, el Agente de distribución devuelve transacciones mayores que esta marca de agua (LSN) desde la caché de la base de datos de distribución (msrepl_commands). Este procedimiento almacenado se ejecuta en el suscriptor de la base de datos de suscripciones. No se admite para suscriptores que no sean de SQL Server.

Precaución

El uso incorrecto de este procedimiento almacenado o la especificación de un valor LSN incorrecto puede ocasionar que el Agente de distribución revierta los cambios ya aplicados en el suscriptor o que omita todos los cambios restantes.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_setsubscriptionxactseqno
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @xact_seqno = ] xact_seqno
[ ; ]

Argumentos

[ @publisher = ] N'publisher'

El nombre del publicador. @publisher es sysname, sin ningún valor predeterminado.

[ @publisher_db = ] N'publisher_db'

Nombre de la base de datos de publicación. @publisher_db es sysname, sin ningún valor predeterminado. Para un publicador que no es de SQL Server, @publisher_db es el nombre de la base de datos de distribución.

[ @publication = ] N'publication'

Nombre de la publicación. @publication es sysname, sin ningún valor predeterminado. Cuando más de una publicación comparte el Agente de distribución, debe especificar un valor de ALL para @publication.

[ @xact_seqno = ] xact_seqno

LSN de la siguiente transacción en el distribuidor que se aplicará en el suscriptor. @xact_seqno es varbinary(16), sin valor predeterminado.

Conjunto de resultados

Nombre de la columna Tipo de datos Descripción
ORIGINAL XACT_SEQNO varbinary(16) El LSN original de la siguiente transacción que se va a aplicar en el suscriptor.
UPDATED XACT_SEQNO varbinary(16) El LSN actualizado de la siguiente transacción que se va a aplicar en el suscriptor.
SUBSCRIPTION STREAM COUNT int El número de flujos de suscripción utilizados durante la última sincronización.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_setsubscriptionxactseqno se usa en la replicación transaccional.

sp_setsubscriptionxactseqno no se puede usar en una topología de replicación transaccional punto a punto.

sp_setsubscriptionxactseqno se puede usar para omitir una transacción específica que está causando un error cuando se aplica en el suscriptor. Cuando se produce un error y después de que se detenga el Agente de distribución, llame a sp_helpsubscriptionerrors en el distribuidor para recuperar el xact_seqno valor de la transacción con errores y, a continuación, llame a sp_setsubscriptionxactseqno, pasando este valor para @xact_seqno. Esto garantiza que solo se procesen los comandos después de procesar este LSN.

Especifique un valor de 0 para que @xact_seqno entregue todos los comandos pendientes en la base de datos de distribución al suscriptor.

sp_setsubscriptionxactseqnoes posible que se produzca un error si el Agente de distribución usa secuencias de varias suscripciones.

Cuando se produzca este error, debe ejecutar el Agente de distribución con un flujo de suscripción único. Para más información, consulte Replication Distribution Agent.

Permisos

Solo los miembros del rol fijo de servidor sysadmin o db_owner rol fijo de base de datos pueden ejecutar sp_setsubscriptionxactseqno.