sys.sp_setsubscriptionxactseqno (Transact-SQL)

Van toepassing op:SQL Server

Gebruikt tijdens het probleemoplossen om de laatst geleverde transactie te specificeren met behulp van het logsequentienummer (LSN), zodat de Distribution Agent bij de volgende transactie kan beginnen met leveren. Na herstart retourneert de Distribution Agent transacties groter dan dit watermerk (LSN) uit de Distributiedatabasecache (msrepl_commands). Deze opgeslagen procedure wordt uitgevoerd bij de abonnee in de abonnementsdatabase. Niet ondersteund voor niet-SQL Server-abonnees.

Caution

Het verkeerd gebruiken van deze opgeslagen procedure of het specificeren van een onjuiste LSN-waarde kan ertoe leiden dat de Distribution Agent wijzigingen die al bij de Subscriber zijn toegepast terugdraait of alle resterende wijzigingen overslaat.

Transact-SQL syntaxis-conventies

Syntax

sys.sp_setsubscriptionxactseqno
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @xact_seqno = ] xact_seqno
[ ; ]

Arguments

[ @publisher = ] N'uitgever'

De naam van de uitgever. @publisher is sysname, zonder standaardinstelling.

[ @publisher_db = ] N'publisher_db'

De naam van de publicatiedatabase. @publisher_db is systeemnaam, zonder standaard. Voor een niet-SQL Server Publisher is @publisher_db de naam van de distributiedatabase.

[ @publication = ] N'publicatie'

De naam van de publicatie. @publication is sysname, zonder standaard. Wanneer meer dan één publicatie de Distribution Agent deelt, moet je een waarde van ALL voor @publication specificeren.

[ @xact_seqno = ] xact_seqno

Het LSN van de volgende transactie bij de distributeur wordt toegepast op de abonnee. @xact_seqno is varbinair(16), zonder standaard.

Resultaatset

Kolomnaam Gegevenstype Description
ORIGINAL XACT_SEQNO varbinary(16) Het oorspronkelijke LSN van de volgende transactie wordt toegepast op de abonnee.
UPDATED XACT_SEQNO varbinary(16) Het bijgewerkte LSN van de volgende transactie wordt toegepast op de abonnee.
SUBSCRIPTION STREAM COUNT int Het aantal abonnementsstromen dat tijdens de laatste synchronisatie werd gebruikt.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_setsubscriptionxactseqno wordt gebruikt bij transactionele replicatie.

sp_setsubscriptionxactseqno kan niet worden gebruikt in een peer-to-peer transactionele replicatietopologie.

sp_setsubscriptionxactseqno kan worden gebruikt om een specifieke transactie over te slaan die een fout veroorzaakt wanneer toegepast wordt op de abonnee. Wanneer er een storing is en nadat de Distribution Agent stopt, roep sp_helpsubscriptionerrors dan bij de distributeur om de xact_seqno waarde van de mislukte transactie op te halen, en roep sp_setsubscriptionxactseqnovervolgens , waarbij deze waarde voor @xact_seqno wordt doorgegeven. Dit zorgt ervoor dat alleen de commando's na deze LSN worden verwerkt.

Specificeer een waarde van 0 voor @xact_seqno om alle hangende commando's in de distributiedatabase aan de abonnee te leveren.

sp_setsubscriptionxactseqnokan falen als de Distribution Agent multi-abonnementsstromen gebruikt.

Wanneer deze fout optreedt, moet je de Distribution Agent met één enkele abonnementsstroom uitvoeren. Zie Replication Distribution Agentvoor meer informatie.

Permissions

Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_setsubscriptionxactseqno.