sp_setsubscriptionxactseqno (Transact-SQL)
Gibt bei der Problembehandlung die Protokollfolgenummer (LSN, Log Sequence Number) der nächsten vom Verteilungs-Agent auf dem Abonnenten anzuwendenden Transaktion an. Der Agent hat dadurch die Möglichkeit, eine Transaktion, die einen Fehler erzeugt hat, auszulassen. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Abonnementdatenbank ausgeführt. Wird nicht für Nicht-SQL Server-Abonnenten unterstützt.
Vorsicht: |
---|
Eine falsche Verwendung dieser gespeicherten Prozedur oder die Angabe eines falschen LSN-Wertes 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 = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @xact_seqno = ] xact_seqno
Argumente
- [ @publisher= ] 'publisher'
Der Name des Verlegers. publisher ist vom Datentyp sysname und hat keinen Standardwert.
- [ @publisher_db= ] 'publisher_db'
Der Name der Publikationsdatenbank. publisher_db ist vom Datentyp sysname und hat keinen Standardwert. Für einen Verleger, auf dem SQL Server nicht ausgeführt wird, ist publisher_db der Name der Verteilungsdatenbank.
- [ @publication= ] 'publication'
Der Name der Publikation. publication ist vom Datentyp sysname und hat keinen Standardwert. Wenn der Verteilungs-Agent von mehreren Publikationen gemeinsam verwendet wird, müssen Sie für publication den Wert ALL angeben.
- [ @xact_seqno= ] xact_seqno
Die LSN der nächsten Transaktion auf dem Verteiler, die auf dem Abonnenten angewendet werden soll. xact_seqno ist vom Datentyp varbinary(16) und hat keinen Standardwert.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_setsubscriptionxactseqno wird in der Transaktionsreplikation verwendet.
sp_setsubscriptionxactseqno kann nicht in einer Peer-to-Peer-Transaktionsreplikationstechnologie verwendet werden.
Mithilfe von sp_setsubscriptionxactseqno kann eine bestimmte Transaktion, die beim Anwenden auf dem Abonnenten einen Fehler verursacht, ausgelassen werden. Rufen Sie bei einem Fehler und nach Beenden des Verteilungs-Agents sp_helpsubscriptionerrors (Transact-SQL) auf dem Verteiler auf, um den xact_seqno-Wert der Transaktion abzurufen, die für den Fehler verantwortlich ist. Rufen Sie dann sp_setsubscriptionxactseqno auf, und übergeben Sie diesen Wert für xact_seqno. Dadurch wird sichergestellt, dass nur die Befehle nach dieser LSN verarbeitet werden.
Geben Sie den Wert 0 für xact_seqno an, um alle ausstehenden Befehle in der Verteilungsdatenbank für den Abonnenten bereitzustellen.
sp_setsubscriptionxactseqno erzeugt möglicherweise einen Fehler, wenn der Verteilungs-Agent Datenströme für mehrere Abonnements 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 der festen Datenbankrolle db_owner können sp_setsubscriptionxactseqno ausführen.
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. |
Siehe auch
Andere Ressourcen
Überspringen von Fehlern in der Transaktionsreplikation