Freigeben über


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 1alle replizierten Transaktionen im Protokoll als verteilt markiert sind.
  • Wenn 0das 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_repldonediesem 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_replcmdsabgerufen 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 NULLNULL@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;