Share via


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.

VorsichtshinweisVorsicht

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.

Themenlink (Symbol) 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
VorsichtshinweisVorsicht

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

Siehe auch

Verweis

sp_replcmds (Transact-SQL)

sp_replflush (Transact-SQL)

sp_repltrans (Transact-SQL)

Gespeicherte Systemprozeduren (Transact-SQL)