sp_repldone (Transact-SQL)
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 consistência das transações entregues. sp_repldone deve ser usado apenas para solucionar problemas de replicação conforme direcionado por um profissional de suporte de replicação experiente. |
Convenções da sintaxe Transact-SQL
Sintaxe
sp_repldone [ @xactid= ] xactid
, [ @xact_seqno= ] xact_seqno
[ , [ @numtrans= ] numtrans ]
[ , [ @time= ] time
[ , [ @reset= ] reset ]
Argumentos
[ @xactid=] xactid
É o LSN (número de sequê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=] time
É o número de milissegundos, se fornecido, necessário para distribuir o último lote de transações. time é int, sem padrão.[ @reset=] reset
É o status de redefinição. reset é int, sem padrão. Se for 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 só é válida quando xactid e xact_seqno são NULL.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Comentários
sp_repldone é usado em replicação transacional.
sp_repldone é usado pelo processo leitor de log para controlar quais transações foram distribuídas.
Com sp_repldone, 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 exigidos xactid e xact_seqno podem ser obtidos usando sp_repltrans ou sp_replcmds.
Permissões
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 for NULL, xact_seqno for NULL e reset for 1, todas as transações replicadas no log serã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_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
Cuidado |
---|
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. |