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 manuell ausgeführt werden sp_repldone
, können Sie die Reihenfolge und Konsistenz der übermittelten Transaktionen ungültig erklären. Sie sollten nur für die Problembehandlung bei der Replikation wie von einem erfahrenen Replikationsunterstützungsexperten verwendet werden sp_repldone
.
Transact-SQL-Syntaxkonventionen
Syntax
sp_repldone [ @xactid = ] xactid
, [ @xact_seqno = ] xact_seqno
[ , [ @numtrans = ] numtrans ]
[ , [ @time = ] time ]
[ , [ @reset = ] reset ]
[ ; ]
Argumente
[ @xactid = ] xactid
Die Protokollsequenznummer (LSN) des ersten Datensatzes für die letzte verteilte Transaktion des Servers. @xactid ist binary(10) ohne Standard.
[ @xact_seqno = ] xact_seqno
Der LSN des letzten Datensatzes für die letzte verteilte Transaktion des Servers. @xact_seqno ist "binary(10)" ohne Standard.
[ @numtrans = ] numtrans
Die Anzahl der verteilten Transaktionen. @numtrans ist int, ohne Standard.
[ @time = ] Zeit
Die Anzahl der Millisekunden, falls angegeben, für die Verteilung des letzten Transaktionsbatches erforderlich. @time ist int, ohne Standard.
[ @reset = ] Zurücksetzen
Der Zurücksetzungsstatus. @reset ist "int" ohne Standard.
- Wenn
1
alle replizierten Transaktionen im Protokoll als verteilt markiert sind. - Wenn
0
das Transaktionsprotokoll auf die erste replizierte Transaktion zurückgesetzt wird und keine replizierten Transaktionen als verteilt markiert sind.
@reset ist nur gültig, wenn sowohl @xactid als auch @xact_seqno sindNULL
.
Rückgabecodewerte
0
(erfolgreich) 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
diesem 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 sp_repltrans
oder sp_replcmds
abgerufen werden.
Diese Prozedur kann in Notsituationen verwendet werden, damit das Transaktionsprotokoll abgeschnitten werden kann, wenn Transaktionen mit ausstehender Replikation vorhanden sind. Weitere Informationen finden Sie im Abschnitt Beispiele.
Berechtigungen
Member der festen Serverrolle sysadmin oder die db_owner feste Datenbankrolle können ausgeführt werden sp_repldone
.
Beispiele
Wenn @xactid ist, ist NULL
NULL
@xact_seqno und @reset ist1
, 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;