sp_setsubscriptionxactseqno (Transact-SQL)
Aplica-se: SQL Server
Usado durante a solução de problemas para especificar a última transação entregue usando o LSN (número de sequência de log), permitindo que o Distribution Agent comece a entregar na próxima transação. Depois de reiniciado, o Distribution Agent retorna transações maiores que essa marca d'água (LSN) do cache do banco de dados de distribuição (msrepl_commands). Esse procedimento armazenado é executado no Assinante no banco de dados de assinatura. Sem suporte para Assinantes não SQLServer.
Cuidado
O uso incorreto desse procedimento armazenado ou a especificação incorreta de um valor LSN pode fazer com que o Agente de Distribuição reverta as alterações que já tinham sido aplicadas no Assinante ou ignore todas as alterações restantes.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_setsubscriptionxactseqno
[ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
, [ @xact_seqno = ] xact_seqno
[ ; ]
Argumentos
@publisher [ = ] N'editor'
O nome do Editor. @publisher é sysname, sem padrão.
@publisher_db [ = ] N'publisher_db'
O nome do banco de dados de publicação. @publisher_db é sysname, sem padrão. Para um Publicador não-SQL Server, @publisher_db é o nome do banco de dados de distribuição.
@publication [ = ] N'publicação'
O nome da publicação. @publication é sysname, sem padrão. Quando mais de uma publicação compartilha o Distribution Agent, você deve especificar um valor de ALL
para @publication.
@xact_seqno [ = ] xact_seqno
O LSN da próxima transação no Distribuidor a ser aplicado no Assinante. @xact_seqno é varbinary(16), sem padrão.
Conjunto de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) | É o LSN original da próxima transação a ser aplicada no Assinante. |
UPDATED XACT_SEQNO |
varbinary(16) | É o LSN atualizado da próxima transação a ser aplicada no Assinante. |
SUBSCRIPTION STREAM COUNT |
int | O número de fluxos de assinatura usado durante a última sincronização. |
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Comentários
sp_setsubscriptionxactseqno
é usado na replicação transacional.
sp_setsubscriptionxactseqno
não pode ser usado em uma topologia de replicação transacional ponto a ponto.
sp_setsubscriptionxactseqno
pode ser usado para ignorar uma transação específica que está causando um erro quando aplicado no Assinante. Quando houver uma falha e depois que o Distribution Agent parar, chame sp_helpsubscriptionerrors no Distribuidor para recuperar o xact_seqno
valor da transação com falha e, em seguida, chame sp_setsubscriptionxactseqno
, passando esse valor para @xact_seqno. Isso garante que apenas os comandos após esse LSN sejam processados.
Especifique um valor de para @xact_seqno entregar todos os comandos pendentes no banco de 0
dados de distribuição para o Assinante.
sp_setsubscriptionxactseqno
poderá falhar se o Distribution Agent usar fluxos de várias assinaturas.
Quando esse erro ocorre, você deve executar o Agente de Distribuição com um fluxo de uma única assinatura. Para obter mais informações, consulte Replication Distribution Agent.
Permissões
Somente membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem executar sp_setsubscriptionxactseqno
.