Partilhar via


sp_setsubscriptionxactseqno (Transact-SQL)

Usado durante a solução de problemas para especificar o LSN (número de sequência de log) da próxima transação a ser aplicada pelo Agente de Distribuição no Assinante, o que permite que o agente ignore uma transação com falha. Esse procedimento armazenado é executado no Assinante, no banco de dados de assinatura. Sem suporte para Assinantes não SQLServer.

Observação sobre cuidadosCuidado

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.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @publisher= ] 'publisher'
    É o nome do Publicador. publisher é sysname, sem padrão.

  • [ @publisher_db= ] 'publisher_db'
    É o nome do banco de dados de publicação. publisher_db é sysname, sem padrão. Para um Editor não SQL Server, publisher_db é o nome do banco de dados de distribuição.

  • [ @publication= ] 'publication'
    É o nome da publicação. publication é sysname, sem padrão. Quando o Agente de Distribuiçãoe compartilhado por mais de uma publicação, você deve especificar um valor de ALL para publication.

  • [ @xact_seqno= ] xact_seqno
    É o LSN da próxima transação no Distribuidor a ser aplicada 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 de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_setsubscriptionxactseqno é usado em 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 aplicada ao Assinante. Quando existe uma falha e antes que o Agente de Distribuição pare, chame sp_helpsubscriptionerrors (Transact-SQL) no Distribuidor para recuperar o valor xact_seqno da transação com falha e depois chame sp_setsubscriptionxactseqno, passando esse valor para xact_seqno. Isso assegurará que somente os comandos após esse LSN sejam processados.

Especifique um valor de 0 para xact_seqno para entregar todos os comandos pendentes no banco de dados de distribuição para o Assinante.

sp_setsubscriptionxactseqno poderá falhar se o Agente de Distribuição 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 Agente de Distribuição de Replicação.

Permissões

Somente membros da função de servidor fixa sysadmin ou db_owner podem executar sp_setsubscriptionxactseqno.