Scadenza e disattivazione delle sottoscrizioniSubscription Expiration and Deactivation

Le sottoscrizioni possono essere disattivate o scadere se non vengono sincronizzate entro il periodo di memorizzazionespecificato.Subscriptions can be deactivated or can expire if they are not synchronized within a specified retention period. Vengono eseguite azioni diverse a seconda del tipo di replica e del periodo di memorizzazione scaduto.The action that occurs depends on the type of replication and the retention period that is exceeded.

Per impostare i periodi di memorizzazione, vedere 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.To set retention periods, see Set the Expiration Period for Subscriptions, Set the Distribution Retention Period for Transactional Publications (SQL Server Management Studio), and Configure Publishing and Distribution.

Replica transazionaleTransactional Replication

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 per la pubblicazione (il parametro @retention di sp_addpublication (Transact-SQL)):Transactional replication uses the maximum distribution retention period (the @max_distretention parameter of sp_adddistributiondb (Transact-SQL)) and the publication retention period (the @retention parameter of 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 del contenuto della distribuzione in esecuzione nel server di distribuzione.If a subscription is not synchronized within the maximum distribution retention period (default of 72 hours) and there are changes in the distribution database that have not been delivered to the Subscriber, the subscription will be marked deactivated by the Distribution clean up job that runs on the Distributor. La sottoscrizione deve essere reinizializzata.The subscription must be reinitialized.

  • 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.If a subscription is not synchronized within the publication retention period (default of 336 hours), the subscription will expire and be dropped by the Expired subscription clean up job that runs on the Publisher. La sottoscrizione deve essere ricreata e sincronizzata.The subscription must be recreated and synchronized.

    Se una sottoscrizione push scade, viene completamente rimossa, a differenza delle sottoscrizioni pull,If a push subscription expires, it is completely removed, but pull subscriptions are not. che devono essere eliminate nel Sottoscrittore.You must clean up pull subscriptions at the Subscriber. Per altre informazioni, vedere Delete a Pull Subscription.For more information, see Delete a Pull Subscription.

Replica di tipo mergeMerge Replication

La replica di tipo merge usa il periodo di memorizzazione per la pubblicazione (i parametri @retention e @retention_period_unit di sp_addmergepublication (Transact-SQL)).Merge replication uses the publication retention period (the @retention and @retention_period_unit parameters of sp_addmergepublication (Transact-SQL)). Se una sottoscrizione è scaduta, è necessario reinizializzarla, poiché i relativi metadati vengono rimossi.When a subscription expires, it must be reinitialized, because metadata for the subscription is removed. Le sottoscrizioni che non vengono reinizializzate vengono rimosse mediante il processo Pulizia dei riferimenti alla sottoscrizione scaduta eseguito sul server di pubblicazione.Subscriptions that are not reinitialized are dropped by the Expired subscription clean up job that runs on the Publisher. 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.By default, this job runs daily; it removes all push subscriptions that have not synchronized for double the length of the publication retention period. Esempio:For example:

  • Se una pubblicazione ha un periodo di memorizzazione di 14 giorni, una sottoscrizione può scadere se non è stata sincronizzata entro 14 giorni.If a publication has a retention period of 14 days, a subscription can expire if it has not synchronized within 14 days.

    Se il server di pubblicazione esegue SQL Server 2005SQL Server 2005 o una versione successiva e l'agente per la sottoscrizione appartiene a SQL Server 2005SQL Server 2005 o a una versione successiva, una sottoscrizione scade solo se sono state apportate modifiche ai dati nella relativa partizione.If the Publisher is running SQL Server 2005SQL Server 2005 or a later version and the agent for the subscription is from SQL Server 2005SQL Server 2005 or a later version, a subscription only expires if there have been changes to the data in that subscription's partition. Ad esempio, si supponga che un Sottoscrittore riceva dati relativi solo ai clienti residenti in Germania.For example, suppose a Subscriber receives customer data only for customers in Germany. 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.If the retention period is set to 14 days, the subscription expires on day 14 only if there have been changes to the German customer data in the last 14 days.

  • È possibile reinizializzare la sottoscrizione da 14 a 27 giorni dopo l'ultima sincronizzazione.From 14 days to 27 days after the last synchronization, the subscription can be reinitialized.

  • Dopo 28 giorni dall'ultima sincronizzazione, la sottoscrizione viene rimossa mediante il processo Pulizia dei riferimenti alla sottoscrizione scaduta .At 28 days after the last synchronization, the subscription is dropped by the Expired subscription clean up job. Se una sottoscrizione push scade, viene completamente rimossa, a differenza delle sottoscrizioni pull,If a push subscription expires, it is completely removed, but pull subscriptions are not. che devono essere eliminate nel Sottoscrittore.You must clean up pull subscriptions at the Subscriber. Per altre informazioni, vedere Delete a Pull Subscription.For more information, see Delete a Pull Subscription.

Considerazioni sull'impostazione del periodo di memorizzazione per la pubblicazione per le pubblicazioni di tipo mergeConsiderations for Setting the Publication Retention Period for Merge Publications

Tenere sempre presenti le considerazioni seguenti nell'impostazione del periodo di memorizzazione per le pubblicazioni di tipo merge:Keep the following considerations in mind when setting the retention period for merge publications:

  • 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.The retention period for merge publications has a 24-hour grace period to accommodate Subscribers in different time zones. Se, ad esempio, si imposta un periodo di memorizzazione di un giorno, il periodo di memorizzazione effettivo sarà di 48 ore.If, for example, you set a retention period of one day, the actual retention period is 48 hours.

  • La pulizia dei metadati di replica di tipo merge dipende dal periodo di memorizzazione per la pubblicazione:Cleanup of merge replication metadata is dependent on the publication retention period:

    • La replica non è in grado di eliminare i metadati dei database di pubblicazione e sottoscrizione prima della scadenza del periodo di memorizzazione.Replication cannot clean up metadata in the publication and subscription databases until the retention period is reached. Quando si imposta un valore elevato per il periodo di memorizzazione, verificare che non sia tale da avere effetti negativi sulle prestazioni della replica.Use caution in specifying a high value for the retention period, because it can negatively impact replication performance. Se si prevede che la sincronizzazione di tutti i Sottoscrittori verrà eseguita regolarmente entro tale periodo di tempo, è consigliabile specificare un valore inferiore.It is recommended that you use a lower setting if you can reliably predict that all Subscribers will synchronize regularly within that time period.

    • È possibile specificare che le sottoscrizioni non devono scadere (impostando il valore 0 per @retention), ma è consigliabile non utilizzare questo valore, poiché impedisce l'eliminazione dei metadati.It is possible to specify that subscriptions never expire (a value of 0 for @retention), but it is strongly recommended that you do not use this value, because metadata cannot be cleaned up.

  • 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.The retention period for any republisher must be set to a value equal to or less than the retention period set at the original Publisher. Impostare lo stesso periodo di memorizzazione delle pubblicazioni per tutti i server di pubblicazione e i relativi partner di sincronizzazione alternativi.You should also use the same publication retention values for all Publishers and their alternate synchronization partners. L'impostazione di periodi di memorizzazione diversi potrebbe causare la non convergenza dei dati.Using different values may lead to non-convergence. Se è necessario modificare il periodo di memorizzazione della pubblicazione, reinizializzare manualmente il Sottoscrittore per evitare la non convergenza dei dati.If you need to change the publication retention value, reinitialize the Subscriber to avoid the non-convergence of data.

  • 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à.If, after a clean up, the publication retention period is increased and a subscription tries to merge with the Publisher (which has already deleted the metadata), the subscription will not expire because of the increased retention value. 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.However, the Publisher does not have enough metadata to download changes to the Subscriber, which leads to non-convergence.

Vedere ancheSee Also

Reinizializzare le sottoscrizioni Reinitialize Subscriptions
Amministrazione dell'agente di replica Replication Agent Administration
Sottoscrivere le pubblicazioni Subscribe to Publications