sp_repldone (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Aktualisiert den Datensatz, mit dem die letzte verteilte Transaktion des Servers identifiziert wird. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.

Achtung

Wenn Sie sp_repldone manuell ausführen, können Sie die Reihenfolge und Konsistenz der übermittelten Transaktionen ungültig erklären. sp_repldone sollte nur für die Problembehandlung bei der Replikation verwendet werden, wie sie von einem erfahrenen Replikationssupportmitarbeiter geleitet wird.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @xactid = ] xactid Ist die Protokollsequenznummer (LSN) des ersten Datensatzes für die letzte verteilte Transaktion des Servers. "xactid " ist "binary(10)" ohne Standard.

[ @xact_seqno = ] xact_seqno Ist der LSN des letzten Datensatzes für die letzte verteilte Transaktion des Servers. xact_seqno ist binary(10) ohne Standard.

[ @numtrans = ] numtrans Ist die Anzahl der verteilten Transaktionen. numtrans ist int, ohne Standard.

[ @time = ] time Ist die Anzahl der Millisekunden, falls angegeben, erforderlich, um den letzten Transaktionsbatch zu verteilen. Zeit ist int, ohne Standard.

[ @reset = ] reset Ist der Zurücksetzungsstatus. reset is int, with no default. Wenn 1, werden alle replizierten Transaktionen im Protokoll als verteilt markiert. Wenn 0, wird das Transaktionsprotokoll auf die erste replizierte Transaktion zurückgesetzt, und es werden keine replizierten Transaktionen als verteilt markiert. reset is only valid when both xactid and xact_seqno are NULL.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_repldone wird in der Transaktionsreplikation verwendet.

sp_repldone wird vom Protokollleseprozess verwendet, um nachzuverfolgen, welche Transaktionen verteilt wurden.

Mit sp_repldone können Sie dem Server manuell mitteilen, dass eine Transaktion repliziert wurde (an den Distributor gesendet). Außerdem haben Sie damit die Möglichkeit, anstelle der entsprechend markierten Transaktion eine andere Transaktion für die nächste Replikation festzulegen. Sie können sich in der Liste mit den replizierten Transaktionen vorwärts oder rückwärts bewegen (alle Transaktionen vor dieser Transaktion und diese selbst werden als verteilt gekennzeichnet).

Die erforderlichen Parameter xactid und xact_seqno können mithilfe von sp_repltrans oder sp_replcmds abgerufen werden.

Berechtigungen

Mitglieder der festen Serverrolle sysadmin oder die db_owner feste Datenbankrolle können sp_repldone ausgeführt werden.

Beispiele

Wenn xactid NULL ist, ist xact_seqno NULL, und das Zurücksetzen ist 1, werden alle replizierten Transaktionen im Protokoll als verteilt markiert. Dies bietet sich an, wenn replizierte Transaktionen im Protokoll nicht mehr gültig sind und das Protokoll abgeschnitten werden soll, wie im folgenden Beispiel:

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

Achtung

Diese Prozedur kann in Notsituationen verwendet werden, damit das Transaktionsprotokoll abgeschnitten werden kann, wenn Transaktionen mit ausstehender Replikation vorhanden sind.

Weitere Informationen

sp_replcmds (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)