Condividi tramite


sp_repldone (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

Aggiorna il record che identifica l'ultima transazione distribuita del server. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Attenzione

Se si esegue sp_repldone manualmente, è possibile invalidare l'ordine e la coerenza delle transazioni recapitate. È consigliabile usare sp_repldone solo per la risoluzione dei problemi di replica come indicato da un professionista esperto del supporto per la replica.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @xactid = ] xactid

Numero di sequenza del log (LSN) del primo record per l'ultima transazione distribuita del server. @xactid è binary(10), senza impostazione predefinita.

[ @xact_seqno = ] xact_seqno

LSN dell'ultimo record per l'ultima transazione distribuita del server. @xact_seqno è binary(10), senza impostazione predefinita.

[ @numtrans = ] numtrans

Numero di transazioni distribuite. @numtrans è int, senza impostazione predefinita.

[ @time = ] time

Numero di millisecondi, se specificato, necessario per distribuire l'ultimo batch di transazioni. @time è int, senza impostazione predefinita.

[ @reset = ] reset

Stato di reimpostazione. @reset è int, senza impostazione predefinita.

  • Se 1, tutte le transazioni replicate nel log vengono contrassegnate come distribuite.
  • Se 0, il log delle transazioni viene reimpostato sulla prima transazione replicata e nessuna transazione replicata viene contrassegnata come distribuita.

@reset è valido solo quando sia @xactid che @xact_seqno sono NULL.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_repldone viene usato nella replica transazionale.

sp_repldone viene usato dal processo di lettura log per tenere traccia delle transazioni distribuite.

Con sp_repldoneè possibile indicare manualmente al server che una transazione è stata replicata (inviata al server di distribuzione). È inoltre possibile cambiare la transazione contrassegnata come transazione successiva in attesa di replica e scorrere l'elenco delle transazioni replicate. Tutte le transazioni che precedono la transazione specificata, inclusa tale transazione, vengono contrassegnate come distribuite.

I parametri obbligatori @xactid e @xact_seqno possono essere ottenuti usando sp_repltrans o sp_replcmds.

È possibile utilizzare questa procedura in situazioni di emergenza per consentire il troncamento del log delle transazioni quando sono presenti transazioni in sospeso in attesa di replica. Per altre informazioni, vedere la sezione Esempi.

Autorizzazioni

I membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_repldone.

Esempi

Quando @xactid è NULL, @xact_seqno è NULLe @reset è 1, tutte le transazioni replicate nel log vengono contrassegnate come distribuite. Ciò risulta utile quando nel log delle transazioni sono presenti transazioni replicate non più valide e si desidera troncare il log, ad esempio:

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