Inizializzazione di una sottoscrizione transazionale senza uno snapshotInitialize a Transactional Subscription Without a Snapshot

Per impostazione predefinita, una sottoscrizione di una pubblicazione transazionale viene inizializzata con uno snapshot generato dall'agente snapshot e applicato dall'agente di distribuzione.By default, a subscription to a transactional publication is initialized with a snapshot, which is generated by the Snapshot Agent and applied by the Distribution Agent. In alcuni scenari, ad esempio quelli che comportano l'utilizzo di set di dati iniziali di grandi dimensioni, è preferibile inizializzare una sottoscrizione utilizzando un altro metodo.In some scenarios, such as those involving large initial datasets, it is preferable to initialize a subscription using another method. Altri metodi di inizializzazione di un Sottoscrittore includono:Other methods of initializing a Subscriber include:

  • Specifica di un backup.Specifying a backup. Ripristinare il backup sul Sottoscrittore in modo che l'agente di distribuzione possa quindi copiare le procedure di sistema e i metadati di replica richiesti.Restore the backup on the Subscriber, and then the Distribution Agent copies any required replication metadata and system procedures. L'inizializzazione con un backup rappresenta la procedura più rapida per il recapito dei dati al Sottoscrittore ed è conveniente in quanto è possibile utilizzare qualsiasi backup recente purché sia stato eseguito in seguito all'abilitazione della pubblicazione per l'inizializzazione con un backup.Initializing with a backup is the fastest way to deliver data to the Subscriber and is convenient, because any recent backup can be used if it was taken after the publication was enabled for initialization with a backup.

  • Copia di un set di dati iniziali nel Sottoscrittore mediante un altro meccanismo, quale l'associazione di un database.Copying an initial dataset to the Subscriber through another mechanism, such as attaching a database. È necessario accertarsi che nel Sottoscrittore siano presenti lo schema e i dati corretti. Successivamente, l'agente di distribuzione copierà le procedure di sistema e i metadati richiesti.You must ensure the correct data and schema are at the Subscriber, and then the Distribution Agent copies any required metadata and system procedures.

Inizializzazione di una sottoscrizione con un backupInitializing a subscription with a backup

Un backup contiene un intero database. Ogni database di sottoscrizione conterrà pertanto una copia completa del database di pubblicazione dopo l'inizializzazione:A backup contains an entire database; therefore each subscription database will contain a complete copy of the publication database when it is initialized:

  • Il backup include tabelle non specificate come articoli per la pubblicazione.The backup includes tables not specified as articles for the publication.

  • Il backup include tutti i dati, anche se in una tabella sono specificati filtri di riga o di colonna.The backup includes all data, even if row or column filters are specified on a table.

    L'operazione di rimozione degli oggetti o dei dati non desiderati in seguito al ripristino del backup è a carico dell'amministratore o dell'applicazione.It is the responsibility of the administrator or application to remove any unwanted objects or data after the backup has been restored. Nelle sincronizzazioni successive le modifiche ai dati vengono replicate solo se si riferiscono a tabelle specificate come articoli e se le modifiche soddisfano i criteri di filtro specificati.In subsequent synchronizations, data changes are only replicated if they apply to tables specified as articles, and the changes meet any filtering criteria you specified.

Nota

Durante il ripristino di un backup, è necessario accertarsi che il backup provenga dal server di pubblicazione se si desidera sincronizzare automaticamente il Sottoscrittore.When restoring a backup, you must ensure that the backup came from the Publisher if you want the Subscriber to automatically synchronize. Nel backup i valori dei numeri di sequenza del file di log (LSN), utilizzati per impostare il punto in cui avviare la sincronizzazione, sono specifici del server di pubblicazione.The log sequence number (LSN) values in the backup (which are used to set the point at which to start synchronizing) are specific to the Publisher.

Per inizializzare una sottoscrizione con un backupTo initialize a subscription with a backup

Per inizializzare una sottoscrizione con un backup, è innanzitutto necessario abilitare l'opzione al momento della creazione di una pubblicazione, quindi specificare i valori per diverse opzioni al momento della creazione di una sottoscrizione.To initialize a subscription with a backup, you first must enable the option when you create a publication, and then specify values for a number of options when you create a subscription. Le pubblicazioni possono essere abilitate mediante la Creazione guidata nuova pubblicazione o a livello di programmazione.Publications can be enabled through the New Publication Wizard or programmatically. I valori richiesti per le opzioni di sottoscrizione, tuttavia, possono essere specificati solo a livello di programmazione.However, the values required for the subscription options can only be specified programmatically.

Nota

Se una sottoscrizione viene inizializzata senza utilizzare uno snapshot, l'account con il quale viene eseguito il servizio SQL Server nel server di pubblicazione dovrà disporre delle autorizzazioni di scrittura sulla cartella snapshot del server di distribuzione.If a subscription is initialized without using a snapshot, the account under which the SQL Server service runs at the Publisher must have write permissions on the snapshot folder at the Distributor. Per ulteriori informazioni sulle autorizzazioni, vedere Replication Agent Security Model.For more information about permissions, see Replication Agent Security Model.

Verifica dell'idoneità di un backupEnsuring the suitability of a backup

Un backup è idoneo per l'inizializzazione di un Sottoscrittore se tutte le transazioni che hanno luogo dopo la relativa esecuzione vengono archiviate nel server di distribuzione.A backup is suitable for initializing a Subscriber if all transactions that occur after the backup was taken are stored at the Distributor. Se il backup non è idoneo, durante la replica verrà visualizzato un messaggio di errore.Replication will display an error message if the backup is not suitable.

Per accertarsi che un backup sia idoneo per l'utilizzo, attenersi alle seguenti indicazioni:To help ensure that a backup is suitable for use, follow these guidelines:

  • Utilizzare l'ultimo backup disponibile e, se è precedente al periodo massimo di memorizzazione della distribuzione, creare un nuovo backup prima di tentare di inizializzare una sottoscrizione con un backup.Use the latest backup available, and if the latest backup is older than the maximum distribution retention period, create a new backup before attempting to initialize a subscription with a backup. Per ulteriori informazioni sul periodo di memorizzazione, vedere Subscription Expiration and Deactivation.For more information about retention period, see Subscription Expiration and Deactivation.

  • Per impostazione predefinita, il processo di pulizia della distribuzione cancella dal database di distribuzione le transazioni che risalgono a più di 72 ore.By default, the distribution cleanup job clears transactions older than 72 hours from the distribution database. La pulizia si basa sul periodo di memorizzazione impostato per la pubblicazione.Cleanup is based on the retention period set for the publication. Durante la sincronizzazione con backup precedenti, provare a disabilitare temporaneamente il processo prima del backup che si desidera ripristinare e a riabilitarlo in seguito alla creazione della sottoscrizione.When synchronizing with older backups, consider temporarily disabling the job before the backup you would like to restore and re-enabling it after the subscription is successfully created. In questo modo si impedisce la rimozione dal database di distribuzione delle transazioni che potrebbero essere necessarie per la corretta sincronizzazione dal backup.This prevents removal of transactions from the distribution database that might be needed to synchronize successfully from the backup. Per informazioni sull'esecuzione di processi di pulizia, vedere Eseguire processi di manutenzione della replica (SQL Server Management Studio).For information about running cleanup jobs, see Run Replication Maintenance Jobs (SQL Server Management Studio).

    In alcuni casi è necessario eseguire manualmente le personalizzazioni nel database del Sottoscrittore ripristinato dopo aver impostato le sottoscrizioni inizializzate con un backup.In some cases you must manually perform customizations in the restored Subscriber database after setting up subscriptions that are initialized with a backup. In genere, le modifiche manuali nel database del Sottoscrittore ripristinato sono necessarie se il server di pubblicazione è definito in modo che il contenuto del database del Sottoscrittore sia diverso da quello del database del server di pubblicazione, in base alle previsioni.In general, manual modifications at the restored Subscriber database are required if the Publication is defined in such a way that the Subscriber database content is expected to be different from the Publisher database content.

  • Le viste indicizzate nel database ripristinato devono essere convertite in tabelle se vengono pubblicate come articoli di viste indicizzate di tabelle basati su logIndexed-views at the restored database have to be converted to tables if they are published as log-based indexed-view-to-table articles

  • Le colonne di tipo timestamp sottoscritte nel database ripristinato devono essere convertite in colonne binary(8) . A tale scopo, copiare il contenuto delle tabelle contenenti colonne di tipo timestamp nelle nuove tabelle con schemi corrispondenti, ad eccezione delle colonne binary(8) che sostituiscono le colonne di tipo timestamp, eliminare le tabelle originali e rinominare le nuove tabelle con gli stessi nomi delle tabelle originali.Subscribed timestamp columns at the restored database must be converted to binary(8) columns: copy the content of the tables containing timestamp columns to new tables with matching schemas except having binary(8) columns in place of the timestamp columns, drop the original tables, and rename the new tables with the same names as the original tables.

Inizializzazione di una sottoscrizione con un metodo alternativoInitializing a subscription with an alternative method

È possibile inizializzare una sottoscrizione utilizzando qualsiasi metodo che consenta di copiare nel Sottoscrittore i dati e lo schema del database di pubblicazione, come Integration ServicesIntegration Services.It is possible to initialize a subscription using any method that allows you to copy the publication database schema and data to the Subscriber, such as Integration ServicesIntegration Services. Quando si utilizza un metodo alternativo per inizializzare il Sottoscrittore, gli oggetti di supporto della replica vengono copiati nel Sottoscrittore.When you use an alternative method to initialize the Subscriber, replication support objects are copied to the Subscriber.

Diversamente dall'inizializzazione con un backup, è necessario assicurarsi personalmente o mediante l'applicazione che i dati e lo schema vengano sincronizzati correttamente al momento dell'aggiunta della sottoscrizione.Unlike initializing with a backup, you or your application must ensure the data and schema are properly synchronized at the time you add the subscription. Ad esempio, in presenza di attività nel server di pubblicazione tra il momento in cui i dati e lo schema vengono copiati nel Sottoscrittore e il momento in cui viene aggiunta la sottoscrizione, le modifiche risultanti da questa attività potrebbero non essere replicate nel Sottoscrittore.If, for example, there is activity on the Publisher between the time data and schema are copied to the Subscriber and the time at which the subscription is added, changes resulting from this activity might not be replicated to the Subscriber.

Per inizializzare una sottoscrizione con un metodo alternativo, vedere Initialize a Subscription Manually.To initialize a subscription with an alternative method, see Initialize a Subscription Manually.

Vedere ancheSee Also

Inizializzare una sottoscrizioneInitialize a Subscription