Compartilhar via


sp_repldone (Transact-SQL)

Aplica-se a:SQL ServerInstâ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

Importante

Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.

@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;