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 è NULL
e @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;