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_setsubscriptionxactseqno
es 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
.