sp_repldone (Transact-SQL)
Aktualisiert den Datensatz, mit dem die letzte verteilte Transaktion des Servers identifiziert wird. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.
Vorsicht |
---|
Wenn Sie sp_repldone manuell ausführen, werden u. U. die Reihenfolge und die Konsistenz übermittelter Transaktionen ungültig. sp_repldone sollte nur unter Anleitung erfahrener Supportmitarbeiter für die Problembehandlung bei der Replikation verwendet werden. |
Transact-SQL-Syntaxkonventionen
Syntax
sp_repldone [ @xactid= ] xactid
, [ @xact_seqno= ] xact_seqno
[ , [ @numtrans= ] numtrans ]
[ , [ @time= ] time
[ , [ @reset= ] reset ]
Argumente
[ @xactid=] xactid
Die Protokollfolgenummer (Log Sequence Number oder LSN) des ersten Datensatzes für die letzte verteilte Transaktion des Servers. xactid ist vom Datentyp binary(10) und hat keinen Standardwert.[ @xact_seqno=] xact_seqno
Die LSN des letzten Datensatzes für die letzte verteilte Transaktion des Servers. xact_seqno ist vom Datentyp binary(10) und hat keinen Standardwert.[ @numtrans=] numtrans
Die Anzahl der verteilten Transaktionen. numtrans ist vom Datentyp int und hat keinen Standardwert.[ @time=] time
Entspricht der Anzahl an Millisekunden (sofern angegeben), die für die Verteilung des letzten Transaktionsbatches erforderlich ist. time ist vom Datentyp int und hat keinen Standardwert.[ @reset=] reset
Entspricht dem Rücksetzungsstatus. reset ist vom Datentyp int und hat keinen Standardwert. Mit 1 werden alle replizierten Transaktionen im Protokoll als verteilt gekennzeichnet. Ist 0 festgelegt, wird das Transaktionsprotokoll auf die erste replizierte Transaktion zurückgesetzt, und keine replizierten Transaktionen werden als verteilt gekennzeichnet. reset ist nur gültig, wenn für xactid und xact_seqno der Wert NULL festgelegt ist.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_repldone wird für die Transaktionsreplikation verwendet.
sp_repldone wird vom Protokollleserprozess verwendet, um nachzuverfolgen, welche Transaktionen verteilt wurden.
Mit sp_repldone können Sie dem Server manuell mitteilen, dass eine Transaktion repliziert (an den Verteiler gesendet) wurde. 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 der festen Datenbankrolle db_owner können sp_repldone ausführen.
Beispiele
Wenn xactid und xact_seqno gleich NULL sind und reset gleich 1 ist, werden alle replizierten Transaktionen im Protokoll als verteilt gekennzeichnet. 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_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
Vorsicht |
---|
Diese Prozedur kann in Notsituationen verwendet werden, damit das Transaktionsprotokoll abgeschnitten werden kann, wenn Transaktionen mit ausstehender Replikation vorhanden sind. |