Compartilhar via


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.