Sdílet prostřednictvím


sp_repldone (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Aktualizuje záznam, který identifikuje poslední distribuovanou transakci serveru. Tato uložená procedura se spustí v Publisheru v databázi publikace.

Opatrnost

Pokud provádíte sp_repldone ručně, můžete zneplatnit pořadí a konzistenci doručených transakcí. K řešení potíží s replikací byste měli použít pouze sp_repldone podle pokynů zkušeného odborníka na podporu replikace.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

Důležitý

Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.

[ @xactid = ] xactid

Pořadové číslo protokolu (LSN) prvního záznamu pro poslední distribuovanou transakci serveru. @xactid je binární (10), bez výchozího nastavení.

[ @xact_seqno = ] xact_seqno

LSN posledního záznamu poslední distribuované transakce serveru. @xact_seqno je binární (10), bez výchozího nastavení.

[ @numtrans = ] numtrans

Počet distribuovaných transakcí. @numtrans je int, bez výchozího nastavení.

[ @time = ] čas

Počet milisekund, pokud je k dispozici, potřebný k distribuci poslední dávky transakcí. @time je int, bez výchozího nastavení.

[ @reset = ] resetování

Stav resetování. @reset je , bez výchozího nastavení.

  • Pokud 1, všechny replikované transakce v protokolu se označí jako distribuované.
  • Pokud 0, transakční protokol se resetuje na první replikovanou transakci a žádné replikované transakce se označí jako distribuované.

@reset je platný pouze v případech, kdy jsou NULL@xactid i @xact_seqno .

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Poznámky

sp_repldone se používá v transakční replikaci.

sp_repldone používá proces čtečky protokolů ke sledování, které transakce byly distribuovány.

Pomocí sp_repldonemůžete ručně serveru sdělit, že byla replikována transakce (odeslána distributorovi). Umožňuje také změnit transakci označenou jako další čekající replikaci. V seznamu replikovaných transakcí se můžete pohybovat dopředu nebo dozadu. (Všechny transakce menší než nebo rovno této transakci jsou označeny jako distribuované.)

Požadované parametry @xactid a @xact_seqno lze získat pomocí sp_repltrans nebo sp_replcmds.

Tento postup lze použít v situacích tísňového volání, aby bylo možné zkrátit transakční protokol, pokud jsou k dispozici transakce čekající na replikaci. Další informace najdete v části Příklady.

Dovolení

Členové správce systému pevné role serveru nebo db_owner pevné databázové role mohou provádět sp_repldone.

Příklady

Pokud je @xactidNULL, @xact_seqno je NULLa @reset je 1, všechny replikované transakce v protokolu jsou označené jako distribuované. To je užitečné, když v transakčním protokolu existují replikované transakce, které už nejsou platné a chcete protokol zkrátit, například:

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