sp_repldone (Transact-SQL)
Gilt für: SQL Server Azure 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)