sp_setsubscriptionxactseqno (Transact-SQL)
Si applica a: SQL Server
Usato durante la risoluzione dei problemi per specificare l'ultima transazione recapitata usando il numero di sequenza del log (LSN), consentendo al agente di distribuzione di iniziare a recapitare alla transazione successiva. Dopo il riavvio, il agente di distribuzione restituisce transazioni maggiori di questa filigrana (LSN) dalla cache del database di distribuzione (msrepl_commands). Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore. e non è supportata per Sottoscrittori non SQL Server.
Attenzione
Se si utilizza questa stored procedure in modo non corretto oppure si specifica un valore LSN non corretto, è possibile che l'agente di distribuzione annulli modifiche già applicate nel Sottoscrittore oppure ignori tutte le restanti modifiche.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_setsubscriptionxactseqno
[ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
, [ @xact_seqno = ] xact_seqno
[ ; ]
Argomenti
[ @publisher = ] N'publisher'
Nome del server di pubblicazione. @publisher è sysname, senza impostazione predefinita.
[ @publisher_db = ] N'publisher_db'
Nome del database di pubblicazione. @publisher_db è sysname, senza impostazione predefinita. Per un server di pubblicazione non SQL Server, @publisher_db è il nome del database di distribuzione.
[ @publication = ] N'publication'
Nome della pubblicazione. @publication è sysname, senza impostazione predefinita. Quando più di una pubblicazione condivide il agente di distribuzione, è necessario specificare il valore per ALL
@publication.
[ @xact_seqno = ] xact_seqno
LSN della transazione successiva nel server di distribuzione da applicare nel Sottoscrittore. @xact_seqno è varbinary(16), senza impostazione predefinita.
Set di risultati
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) | LSN originale della successiva transazione da applicare nel Sottoscrittore. |
UPDATED XACT_SEQNO |
varbinary(16) | LSN aggiornato della successiva transazione da applicare nel Sottoscrittore. |
SUBSCRIPTION STREAM COUNT |
int | Numero di flussi di sottoscrizione utilizzati durante l'ultima sincronizzazione. |
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
sp_setsubscriptionxactseqno
viene usato nella replica transazionale.
sp_setsubscriptionxactseqno
non può essere usato in una topologia di replica transazionale peer-to-peer.
sp_setsubscriptionxactseqno
può essere usato per ignorare una transazione specifica che causa un errore quando si applica al Sottoscrittore. Quando si verifica un errore e dopo l'arresto del agente di distribuzione, chiamare sp_helpsubscriptionerrors nel server di distribuzione per recuperare il xact_seqno
valore della transazione non riuscita e quindi chiamare sp_setsubscriptionxactseqno
, passando questo valore per @xact_seqno. In questo modo si garantisce che vengano elaborati solo i comandi dopo l'elaborazione di questo LSN.
Specificare il valore per 0
@xact_seqno per recapitare tutti i comandi in sospeso nel database di distribuzione al Sottoscrittore.
sp_setsubscriptionxactseqno
potrebbe non riuscire se il agente di distribuzione usa flussi con più sottoscrizioni.
Quando si verifica questo errore, è necessario eseguire l'agente di distribuzione con un flusso di sottoscrizione singolo. Per altre informazioni, vedere Replication Distribution Agent.
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin o db_owner ruolo predefinito del database possono eseguire sp_setsubscriptionxactseqno
.