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
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_repldone
o , 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;