Scadenza e disattivazione delle sottoscrizioni
Si applica a: SQL Server Istanza gestita di SQL di Azure
Le sottoscrizioni possono essere disattivate o scadere se non vengono sincronizzate entro il periodo di memorizzazionespecificato. Vengono eseguite azioni diverse a seconda del tipo di replica e del periodo di memorizzazione scaduto.
Per impostare i periodi di memorizzazione, vedi Impostare il periodo di scadenza per le sottoscrizioni, Impostare il periodo di memorizzazione per la distribuzione per le pubblicazioni transazionali (SQL Server Management Studio), e Configurare la pubblicazione e la distribuzione.
Replica transazionale
La replica transazionale usa il periodo massimo di memorizzazione per la distribuzione (il parametro @max_distretention
di sp_adddistributiondb (Transact-SQL)) e il periodo di memorizzazione della pubblicazione (il parametro @retention
di sp_addpublication (Transact-SQL)):
Se una sottoscrizione non è stata sincronizzata entro il periodo massimo di memorizzazione per la distribuzione (72 ore per impostazione predefinita) e nel database di distribuzione sono presenti modifiche che non sono state recapitate al Sottoscrittore, la sottoscrizione viene contrassegnata come disattivata dal processo Eliminazione della sottoscrizione scaduta in esecuzione nel Distributore. La sottoscrizione deve essere reinizializzata.
Se una sottoscrizione non è stata sincronizzata entro il periodo di memorizzazione per la pubblicazione (336 ore per impostazione predefinita), la sottoscrizione scade e viene eliminata dal processo Pulizia dei riferimenti alla sottoscrizione scaduta in esecuzione nel server di pubblicazione. (Prima della correzione in KB4014798, al processo è stato assegnato il nome di Pulizia della distribuzione. La sottoscrizione deve essere ricreata e sincronizzata.
Se una sottoscrizione push scade, viene completamente rimossa, a differenza delle sottoscrizioni pull, che devono essere eliminate nel Sottoscrittore. Per altre informazioni, vedere Delete a Pull Subscription.
Replica di tipo merge
La replica di tipo merge usa il periodo di memorizzazione della pubblicazione (i parametri @retention
e @retention_period_unit
di sp_addmergepublication (Transact-SQL)). Se una sottoscrizione è scaduta, è necessario reinizializzarla, poiché i relativi metadati vengono rimossi. Le sottoscrizioni che non vengono reinizializzate vengono rimosse mediante il processo Pulizia dei riferimenti alla sottoscrizione scaduta eseguito sul server di pubblicazione. Per impostazione predefinita, questo processo viene eseguito ogni giorno e rimuove tutte le sottoscrizioni push che non sono state sincronizzate per il doppio della durata del periodo di memorizzazione per la pubblicazione. Ad esempio:
Se una pubblicazione ha un periodo di memorizzazione di 14 giorni, una sottoscrizione può scadere se non è stata sincronizzata entro 14 giorni.
Se il server di pubblicazione esegue SQL Server 2005 (9.x) o una versione successiva e l'agente per la sottoscrizione appartiene a SQL Server 2005 (9.x) o a una versione successiva, una sottoscrizione scade solo se sono state apportate modifiche ai dati nella relativa partizione. Ad esempio, si supponga che un Sottoscrittore riceva dati relativi solo ai clienti residenti in Germania. Se il periodo di memorizzazione impostato è pari 14 giorni, la sottoscrizione scade il 14° giorno solo se sono state apportate modifiche ai dati dei clienti tedeschi negli ultimi 14 giorni.
È possibile reinizializzare la sottoscrizione da 14 a 27 giorni dopo l'ultima sincronizzazione.
Dopo 28 giorni dall'ultima sincronizzazione, la sottoscrizione viene rimossa mediante il processo Pulizia dei riferimenti alla sottoscrizione scaduta . Se una sottoscrizione push scade, viene completamente rimossa, a differenza delle sottoscrizioni pull, che devono essere eliminate nel Sottoscrittore. Per altre informazioni, vedere Delete a Pull Subscription.
Considerazioni sull'impostazione del periodo di memorizzazione per la pubblicazione per le pubblicazioni di tipo merge
Tenere sempre presenti le considerazioni seguenti nell'impostazione del periodo di memorizzazione per le pubblicazioni di tipo merge:
Il periodo di memorizzazione per le pubblicazioni di tipo merge ha un periodo di prova di 24 ore per adattarsi ai Sottoscrittori dei diversi fusi orari. Se, ad esempio, si imposta un periodo di memorizzazione di un giorno, il periodo di memorizzazione effettivo sarà di 48 ore.
La pulizia dei metadati di replica di tipo merge dipende dal periodo di memorizzazione per la pubblicazione:
La replica non è in grado di eliminare i metadati dei database di pubblicazione e sottoscrizione prima della scadenza del periodo di memorizzazione. Quando si imposta un valore elevato per il periodo di memorizzazione, verificare che non sia tale da avere effetti negativi sulle prestazioni della replica. Se si prevede che la sincronizzazione di tutti i Sottoscrittori verrà eseguita regolarmente entro tale periodo di tempo, è consigliabile specificare un valore inferiore.
È possibile specificare che le sottoscrizioni non devono scadere (impostando il valore 0 per
@retention
), ma è consigliabile non usare questo valore, poiché impedisce l'eliminazione dei metadati.
Il periodo di memorizzazione per i server di ripubblicazione deve essere impostato su un valore uguale o minore del periodo di memorizzazione impostato nel server di pubblicazione originale. Impostare lo stesso periodo di memorizzazione delle pubblicazioni per tutti i server di pubblicazione e i relativi partner di sincronizzazione alternativi. L'impostazione di periodi di memorizzazione diversi potrebbe causare la non convergenza dei dati. Se è necessario modificare il periodo di memorizzazione della pubblicazione, reinizializzare manualmente il Sottoscrittore per evitare la non convergenza dei dati.
Se, dopo la pulizia dei metadati, si incrementa il periodo di memorizzazione della pubblicazione e una sottoscrizione tenta di eseguire il merge con il server di pubblicazione (in cui i metadati sono già stati eliminati), a causa dell'incremento del periodo di memorizzazione la sottoscrizione non scadrà. Tuttavia, il server di pubblicazione non dispone di metadati sufficienti per scaricare le modifiche al Sottoscrittore e si avrà pertanto una situazione di non convergenza.