sys.sp_setsubscriptionxactseqno (Transact-SQL)

Gäller för:SQL Server

Används under felsökning för att specificera den senast levererade transaktionen med hjälp av loggsekvensnumret (LSN), vilket gör att Distribution Agent kan börja leverera vid nästa transaktion. Efter omstart returnerar Distribution Agent transaktioner större än denna vattenstämpel (LSN) från distributionsdatabasens cache (msrepl_commands). Denna lagrade procureur utförs hos prenumeranten i prenumerationsdatabasen. Stöds inte för icke-SQL Server-prenumeranter.

Caution

Felaktig användning av denna lagrade procedur eller att ange ett felaktigt LSN-värde kan få Distribution Agent att återställa ändringar som redan har applicerats hos abonnenten eller hoppa över alla återstående ändringar.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @publisher = ] N'publisher'

Namnet på utgivaren. @publisher är sysname, utan standard.

[ @publisher_db = ] N'publisher_db'

Namnet på publikationsdatabasen. @publisher_db är sysname, utan standard. För en icke-SQL Server Publisher är @publisher_db namnet på distributionsdatabasen.

[ @publication = ] N'publicering'

Namnet på publikationen. @publication är sysname, utan standard. När mer än en publikation delar Distribution Agent måste du ange ett värde på ALL för @publication.

[ @xact_seqno = ] xact_seqno

LSN för nästa transaktion hos distributören ska tillämpas på abonnenten. @xact_seqno är varbinär(16), utan standard.

Resultatuppsättning

Kolumnnamn Datatyp Description
ORIGINAL XACT_SEQNO varbinary(16) Det ursprungliga LSN för nästa transaktion ska tillämpas på abonnenten.
UPDATED XACT_SEQNO varbinary(16) Det uppdaterade LSN för nästa transaktion ska tillämpas på prenumeranten.
SUBSCRIPTION STREAM COUNT int Antalet prenumerationsströmmar som användes under den senaste synkroniseringen.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

sp_setsubscriptionxactseqno används vid transaktionell replikation.

sp_setsubscriptionxactseqno kan inte användas i en peer-to-peer-transaktionell replikationstopologi.

sp_setsubscriptionxactseqno kan användas för att hoppa över en specifik transaktion som orsakar ett fel när gäller på prenumeranten. När det uppstår ett fel och efter att Distribution Agent upphört, anropa sp_helpsubscriptionerrors hos distributören för att hämta xact_seqno värdet av den misslyckade transaktionen, och anropa sp_setsubscriptionxactseqnosedan , och skicka detta värde för @xact_seqno. Detta säkerställer att endast kommandona efter detta LSN bearbetas.

Ange ett värde för 0för @xact_seqno för att leverera alla väntande kommandon i distributionsdatabasen till prenumeranten.

sp_setsubscriptionxactseqnokan misslyckas om Distribution Agent använder strömmar med flera prenumerationer.

När detta fel uppstår måste du köra Distribution Agent med en enda prenumerationsström. Mer information finns i Distributionsagent för replikering.

Permissions

Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_setsubscriptionxactseqno.