sp_resyncmergesubscription (Transact-SQL)
Risincronizza una sottoscrizione di tipo merge in base a uno stato di convalida noto specificato. In questo modo è possibile forzare la convergenza oppure sincronizzare il database di sottoscrizione fino a un momento specifico, ad esempio fino all'ultima convalida riuscita oppure fino a una data specificata. Quando si risincronizza una sottoscrizione in base a questa modalità, lo snapshot non viene riapplicato. Questa stored procedure non viene utilizzata per sottoscrizioni di replica snapshot o transazionali. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione o nel database di sottoscrizione del Sottoscrittore.
Sintassi
sp_resyncmergesubscription [ [ @publisher = ] 'publisher' ]
[ , [ @publisher_db = ] 'publisher_db' ]
, [ @publication = ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @resync_type = ] resync_type ]
[ , [ @resync_date_str = ] resync_date_string ]
Argomenti
[ @publisher= ] 'publisher'
Nome del server di pubblicazione. publisher è di tipo sysname e il valore predefinito è NULL. Il valore NULL è valido se la stored procedure viene eseguita nel server di pubblicazione. Se la stored procedure viene eseguita nel Sottoscrittore, è necessario specificare un server di pubblicazione.[ @publisher_db = ] 'publisher_db'
Nome del database di pubblicazione. publisher_db è di tipo sysname e il valore predefinito è NULL. Il valore NULL è valido se la stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione. Se la stored procedure viene eseguita nel Sottoscrittore, è necessario specificare un server di pubblicazione.[ @publication= ] 'publication'
Nome della pubblicazione. publicationè di tipo sysname e non prevede alcun valore predefinito.[ @subscriber = ] 'subscriber'
Nome del Sottoscrittore. subscriber è di tipo sysname e il valore predefinito è NULL. Il valore NULL è valido se la stored procedure viene eseguita nel Sottoscrittore. Se la stored procedure viene eseguita nel server di pubblicazione, è necessario specificare un Sottoscrittore.[ @subscriber_db=] 'subscriber_db'
Nome del database di sottoscrizione. subscription_db è di tipo sysname e il valore predefinito è NULL. Il valore NULL è valido se la stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore. Se la stored procedure viene eseguita nel server di pubblicazione, è necessario specificare un Sottoscrittore.[ @resync_type = ] resync_type
Definisce quando avviare il processo di risincronizzazione. resync_type è di tipo int. I possibili valori sono i seguenti.Valore
Descrizione
0
La sincronizzazione ha inizio dopo lo snapshot iniziale. Questa opzione comporta il maggior utilizzo di risorse, in quanto tutte le modifiche apportate dopo lo snapshot iniziale vengono riapplicate nel Sottoscrittore.
1
La sincronizzazione ha inizio dopo l'ultima convalida riuscita. Tutte le generazioni nuove o incomplete eseguite dopo l'ultima convalida riuscita vengono riapplicate nel Sottoscrittore.
2
La sincronizzazione ha inizio a partire dalla data specificata in resync_date_str. Tutte le generazioni nuove o incomplete eseguite dopo tale data vengono riapplicate nel Sottoscrittore.
[ @resync_date_str=] resync_date_string
Definisce la data di inizio del processo di risincronizzazione. resync_date_string è di tipo nvarchar(30) e il valore predefinito è NULL. Questo parametro viene utilizzato quando resync_type è impostato sul valore 2. La data specificata viene convertita nel valore datetime equivalente.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Osservazioni
sp_resyncmergesubscription viene utilizzata per la replica di tipo merge.
L'impostazione di resync_type sul valore 0, che riapplica tutte le modifiche apportate dopo lo snapshot iniziale, comporta l'utilizzo di un numero elevato di risorse, che è comunque decisamente inferiore rispetto al numero di risorse richiesto da una reinizializzazione completa. Se, ad esempio, lo snapshot iniziale è stato recapitato un mese fa, vengono riapplicati i dati relativi all'ultimo mese. Se lo snapshot iniziale contiene 1 gigabyte (GB) di dati, ma i dati modificati nell'ultimo mese corrispondono a 2 megabyte (MB), risulta più efficiente riapplicare i dati anziché l'intero snapshot da 1 GB.
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_resyncmergesubscription.