sp_setsubscriptionxactseqno (Transact-SQL)
Gilt für: SQL Server
Wird bei der Problembehandlung verwendet, um die letzte zugestellte Transaktion mithilfe der Protokollsequenznummer (Log Sequence Number, LSN) anzugeben, sodass der Verteilungs-Agent mit der Bereitstellung bei der nächsten Transaktion beginnen kann. Nach dem Neustart gibt die Verteilungs-Agent Transaktionen zurück, die größer als dieses Wasserzeichen (LSN) aus dem Verteilungsdatenbankcache (msrepl_commands). Diese gespeicherte Prozedur wird beim Abonnenten in der Abonnementdatenbank ausgeführt. Wird nicht für Nicht-SQL Server-Abonnenten unterstützt.
Achtung
Eine falsche Verwendung dieser gespeicherten Prozedur oder die Angabe eines falschen LSN-Werts kann den Verteilungs-Agent dazu veranlassen, Änderungen, die bereits auf den Abonnenten angewendet wurden, rückgängig zu machen oder alle noch verbleibenden Änderungen auszulassen.
Transact-SQL-Syntaxkonventionen
Syntax
sp_setsubscriptionxactseqno
[ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
, [ @xact_seqno = ] xact_seqno
[ ; ]
Argumente
[ @publisher = ] N'publisher'
Der Name des Herausgebers. @publisher ist "sysname" ohne Standard.
[ @publisher_db = ] N'publisher_db'
Der Name der Publikationsdatenbank. @publisher_db ist "sysname" ohne Standard. Bei einem Nicht-SQL Server-Herausgeber ist @publisher_db der Name der Verteilungsdatenbank.
[ @publication = ] N'Publikation'
Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard. Wenn mehr als eine Publikation die Verteilungs-Agent freigibt, müssen Sie einen Wert ALL
für @publication angeben.
[ @xact_seqno = ] xact_seqno
Die LSN der nächsten Transaktion beim Distributor, die beim Abonnenten angewendet werden soll. @xact_seqno ist varbinary(16) ohne Standard.
Resultset
Spaltenname | Datentyp | Beschreibung |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) | Die ursprüngliche LSN der nächsten Transaktion, die auf dem Abonnenten angewendet werden soll. |
UPDATED XACT_SEQNO |
varbinary(16) | Die aktualisierte LSN der nächsten Transaktion, die auf dem Abonnenten angewendet werden soll. |
SUBSCRIPTION STREAM COUNT |
int | Die Anzahl der bei der letzten Synchronisierung verwendeten Abonnementdatenströme. |
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
sp_setsubscriptionxactseqno
wird in der Transaktionsreplikation verwendet.
sp_setsubscriptionxactseqno
kann nicht in einer Peer-to-Peer-Replikationstopologie verwendet werden.
sp_setsubscriptionxactseqno
kann verwendet werden, um eine bestimmte Transaktion zu überspringen, die einen Fehler verursacht, wenn sie beim Abonnenten angewendet wird. Wenn ein Fehler auftritt und die Verteilungs-Agent beendet wurde, rufen Sie sp_helpsubscriptionerrors beim Distributor auf, um den xact_seqno
Wert der fehlgeschlagenen Transaktion abzurufen, und rufen Sie sp_setsubscriptionxactseqno
dann diesen Wert für @xact_seqno auf. Dadurch wird sichergestellt, dass nur die Befehle nach der Verarbeitung dieses LSNs ausgeführt werden.
Geben Sie einen Wert für 0
@xact_seqno an, um alle ausstehenden Befehle in der Verteilungsdatenbank an den Abonnenten zu übermitteln.
sp_setsubscriptionxactseqno
schlägt möglicherweise fehl, wenn die Verteilungs-Agent Mehrere Abonnementdatenströme verwendet.
Wenn dieser Fehler auftritt, müssen Sie den Verteilungs-Agent mit einem Datenstrom für ein einzelnes Abonnement ausführen. Weitere Informationen finden Sie unter Replication Distribution Agent.
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_setsubscriptionxactseqno
.