Partilhar via


sp_repldone (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Atualiza o registro que identifica a última transação distribuída do servidor. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.

Cuidado

Se você executar sp_repldone manualmente, poderá invalidar a ordem e a consistência das transações entregues. Você só deve usar sp_repldone para solucionar problemas de replicação conforme indicado por um profissional experiente em suporte de replicação.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_repldone [ @xactid = ] xactid
    , [ @xact_seqno = ] xact_seqno
    [ , [ @numtrans = ] numtrans ]
    [ , [ @time = ] time ]
    [ , [ @reset = ] reset ]
[ ; ]

Argumentos

@xactid [ = ] xactídeo

O LSN (número de seqüência de log) do primeiro registro para a última transação distribuída do servidor. @xactid é binary(10), sem padrão.

@xact_seqno [ = ] xact_seqno

O LSN do último registro para a última transação distribuída do servidor. @xact_seqno é binary(10), sem padrão.

@numtrans [ = ] numtrans

O número de transações distribuídas. @numtrans é int, sem padrão.

@time [ = ] tempo

O número de milissegundos, se fornecido, necessário para distribuir o último lote de transações. @time é int, sem padrão.

@reset [ = ] redefinir

O status de redefinição. @reset é int, sem padrão.

  • Se 1, todas as transações replicadas no log serão marcadas como distribuídas.
  • Se 0, o log de transações será redefinido para a primeira transação replicada e nenhuma transação replicada será marcada como distribuída.

@reset é válido apenas quando @xactid e @xact_seqno são NULL.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_repldone é usado na replicação transacional.

sp_repldone é usado pelo processo do leitor de log para rastrear quais transações foram distribuídas.

Com sp_repldoneo , você pode informar manualmente ao servidor que uma transação foi replicada (enviada ao Distribuidor). Ele também permite alterar a transação marcada como a próxima a ser replicada. Você pode avançar ou retroceder na lista de transações replicadas. (Todas as transações menores ou iguais àquela transação serão marcadas como distribuídas.)

Os parâmetros necessários @xactid e @xact_seqno podem ser obtidos usando sp_repltrans ou sp_replcmds.

Esse procedimento pode ser usado em situações emergenciais para permitir o truncamento do log de transações quando houver replicação pendente de transações. Para obter mais informações, consulte a seção Exemplos.

Permissões

Os membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_repldone.

Exemplos

Quando @xactid é NULL, @xact_seqno é NULL, e @reset é 1, todas as transações replicadas no log são marcadas como distribuídas. Isso é útil quando há transações replicadas no log de transações que não são mais válidas e você quer truncar o log, por exemplo:

EXEC sp_repldone
    @xactid = NULL,
    @xact_seqno = NULL,
    @numtrans = 0,
    @time = 0,
    @reset = 1;