Compartilhar via


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.

Observação sobre cuidadosCuidado

Se você executar sp_repldone manualmente, poderá invalidar a ordem e a consistência das transações fornecidas. sp_repldone só deve ser usado para solucionar problemas na replicação, conduzido por um profissional de suporte a replicação experiente.

Ícone de vínculo de tópicoConvenções de 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 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=] 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 for 0, o log de transações será redefinido para a primeira transação replicada e as transações não replicadas serão marcadas como distribuídas. reset só é válido quando xactid e xact_seqno forem 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
Observação sobre cuidadosCuidado

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. O uso desse procedimento impede que o Microsoft SQL Server 2000 replique o banco de dados até que ele seja não publicado e publicado novamente.