Condividi tramite


Inizializzazione di una sottoscrizione di tipo merge senza snapshot

[!NOTA]

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Per impostazione predefinita, la sottoscrizione di una pubblicazione di tipo merge viene inizializzata con uno snapshot generato dall'agente snapshot e applicato dall'agente di merge. In alcuni scenari è possibile inizializzare una sottoscrizione utilizzando un altro metodo, ad esempio un backup. La replica di tipo merge supporta l'inizializzazione di sottoscrizioni senza snapshot sia per le pubblicazioni filtrate che non filtrate. In genere, questa opzione viene utilizzata per le pubblicazioni non filtrate e per quelle che utilizzano filtri statici. Le pubblicazioni che utilizzano filtri con parametri vengono in genere inizializzate con uno snapshot della partizione del Sottoscrittore. Per ulteriori informazioni, vedere Snapshot per pubblicazioni di tipo merge con filtri con parametri.

Se possibile, inizializzare le sottoscrizioni con uno snapshot. È consigliabile evitare di inizializzare una sottoscrizione senza snapshot, soprattutto nelle condizioni seguenti:

  • Quando vengono utilizzati filtri verticali o il rilevamento a livello di colonna oppure vengono apportate modifiche allo schema nel server di pubblicazione. Ciò può impedire la convergenza in caso di inizializzazione di una sottoscrizione senza snapshot.

  • Quando si utilizza la sincronizzazione tramite il Web, i file di snapshot vengono replicati nel Sottoscrittore ma non vengono utilizzati.

  • Quando è necessario reinizializzare la sottoscrizione.

  • Quando è necessario usufruire dei vantaggi offerti in termini di prestazioni dall'utilizzo di partizioni pre-calcolate.

Per inizializzare una sottoscrizione di tipo merge da un backup o utilizzando un altro metodo, effettuare i passaggi seguenti:

  1. Aggiungere una colonna uniqueidentifier con rowguid e attributi di colonna diversi da Null alle tabelle che verranno utilizzate nella replica di tipo merge.

  2. Eseguire un backup del database che verrà utilizzato per l'inizializzazione del Sottoscrittore.

  3. Creare una pubblicazione e generare il relativo snapshot. Sebbene lo schema e i dati delle tabelle pubblicate nello snapshot non verranno utilizzati, lo snapshot è comunque necessario poiché include gli oggetti di sistema e i metadati richiesti dalla replica. Questi oggetti e metadati vengono copiati nel Sottoscrittore durante la sincronizzazione iniziale.

  4. Ripristinare il backup sul Sottoscrittore oppure copiare i dati utilizzando un altro metodo. In caso di ripristino di un backup, non specificare l'opzione KEEP_REPLICATION. Questa opzione è progettata per mantenere le impostazioni di replica durante il ripristino. Dato che il backup proviene dal server di pubblicazione, è necessario rimuovere le impostazioni di tale server dal database. Al termine della sincronizzazione iniziale il database ripristinato avrà le impostazioni necessarie del Sottoscrittore.

  5. Creare una sottoscrizione, specificando che verrà inizializzata manualmente.

    [!NOTA]

    Se si inizializza una sottoscrizione senza snapshot, all'account utilizzato per l'esecuzione del servizio SQL Server nel server di pubblicazione devono essere associate autorizzazioni di scrittura per la cartella snapshot nel server di distribuzione. Per ulteriori informazioni sulle autorizzazioni, vedere Modello di protezione dell'agente di replica.

    Per ulteriori informazioni, vedere:

  6. Eseguire una sincronizzazione iniziale con l'agente di merge per copiare gli oggetti e i metadati necessari per la replica. Il Sottoscrittore è ora sincronizzato e pronto per accettare modifiche incrementali dal server di pubblicazione.