Delen via


sp_repldone (Transact-SQL)

van toepassing op:SQL ServerAzure SQL Managed Instance

Hiermee wordt de record bijgewerkt die de laatste gedistribueerde transactie van de server identificeert. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.

Voorzichtigheid

Als u sp_repldone handmatig uitvoert, kunt u de volgorde en consistentie van geleverde transacties ongeldig maken. U moet alleen sp_repldone gebruiken voor het oplossen van problemen met replicatie, zoals wordt geleid door een ervaren replicatieondersteuningsmedewerker.

Transact-SQL syntaxisconventies

Syntaxis

sp_repldone [ @xactid = ] xactid
    , [ @xact_seqno = ] xact_seqno
    [ , [ @numtrans = ] numtrans ]
    [ , [ @time = ] time ]
    [ , [ @reset = ] reset ]
[ ; ]

Argumenten

Belangrijk

Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.

[ @xactid = ] xactid

Het logboekreeksnummer (LSN) van de eerste record voor de laatste gedistribueerde transactie van de server. @xactid is binaire(10), zonder standaardinstelling.

[ @xact_seqno = ] xact_seqno

De LSN van de laatste record voor de laatste gedistribueerde transactie van de server. @xact_seqno is binaire(10), zonder standaardinstelling.

[ @numtrans = ]

Het aantal gedistribueerde transacties. @numtrans is int, zonder standaardinstelling.

[ @time = ] tijd

Het aantal milliseconden, indien opgegeven, dat nodig is om de laatste batch transacties te distribueren. @time is int, zonder standaardinstelling.

[ @reset = ] opnieuw instellen

De resetstatus. @reset is int, zonder standaardinstelling.

  • Als 1, worden alle gerepliceerde transacties in het logboek gemarkeerd als gedistribueerd.
  • Als 0, wordt het transactielogboek opnieuw ingesteld op de eerste gerepliceerde transactie en worden er geen gerepliceerde transacties gemarkeerd als gedistribueerd.

@reset is alleen geldig wanneer zowel @xactid als @xact_seqno zijn NULL.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Opmerkingen

sp_repldone wordt gebruikt in transactionele replicatie.

sp_repldone wordt gebruikt door het logboeklezerproces om bij te houden welke transacties zijn gedistribueerd.

Met sp_repldonekunt u de server handmatig laten weten dat een transactie is gerepliceerd (verzonden naar de distributeur). Hiermee kunt u ook de transactie wijzigen die is gemarkeerd als de volgende transactie die wacht op replicatie. U kunt vooruit of achteruit gaan in de lijst met gerepliceerde transacties. (Alle transacties kleiner dan of gelijk aan die transactie worden gemarkeerd als gedistribueerd.)

De vereiste parameters @xactid en @xact_seqno kunnen worden verkregen met behulp van sp_repltrans of sp_replcmds.

Deze procedure kan worden gebruikt in noodsituaties om afkapping van het transactielogboek mogelijk te maken wanneer er transacties in behandeling zijn. Zie de sectie Voorbeelden voor meer informatie.

Machtigingen

Leden van de sysadmin vaste serverfunctie of de db_owner vaste databaserol kunnen sp_repldoneuitvoeren.

Voorbeelden

Wanneer @xactid is NULL, wordt @xact_seqnoNULLen wordt @reset1, worden alle gerepliceerde transacties in het logboek gemarkeerd als gedistribueerd. Dit is handig wanneer er gerepliceerde transacties in het transactielogboek staan die niet meer geldig zijn en u het logboek wilt afkappen, bijvoorbeeld:

EXEC sp_repldone
    @xactid = NULL,
    @xact_seqno = NULL,
    @numtrans = 0,
    @time = 0,
    @reset = 1;