Inizializzazione manuale di una sottoscrizioneInitialize a Subscription Manually

In questo argomento si descrive come inizializzare manualmente una sottoscrizione in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to initialize a subscription manually in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Anche se per inizializzare una sottoscrizione viene in genere utilizzato lo snapshot iniziale, è possibile inizializzare le sottoscrizioni di pubblicazioni senza uno snapshot, purché lo schema e i dati iniziali siano già presenti nel Sottoscrittore.While the initial snapshot is normally used to initialize a subscription, subscriptions to publications can be initialized without using a snapshot, provided that the schema and initial data are already present at the subscriber.

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Se in un database pubblicato tramite la replica transazionale sono in corso delle attività nell'intervallo di tempo che intercorre tra la copia dei dati e dello schema nel Sottoscrittore e l'inizializzazione manuale della sottoscrizione, è possibile che le modifiche risultanti da tali attività non vengano replicate nel Sottoscrittore.If there is activity on a database published using transactional replication between the time data and schema are copied to the Subscriber and the time at which the subscription is manually initialized, changes resulting from this activity might not be replicated to the Subscriber.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per inizializzare manualmente una sottoscrizione a una pubblicazione, copiare lo schema e, se necessario, i dati nel database di sottoscrizione.Initialize a subscription to a publication manually by copying the schema (and typically data) to the subscription database. Lo schema e i dati devono corrispondere a quelli presenti nel database di pubblicazione.The schema and data should match the publication database. Specificare quindi che la sottoscrizione non richiede schema e dati nella pagina Inizializzazione sottoscrizioni della Creazione guidata nuova sottoscrizione.Then specify that the subscription does not require schema and data on the Initialize Subscriptions page of the New Subscription Wizard. Per ulteriori informazioni sull'accesso a questa procedura guidata, vedere Initialize a Transactional Subscription Without a Snapshot e Create a Pull Subscription.For more information about accessing this wizard, see Initialize a Transactional Subscription Without a Snapshot and Create a Pull Subscription.

Quando si sincronizza la sottoscrizione per la prima volta, gli oggetti e i metadati necessari per la replica vengono copiati nel database di sottoscrizione.When you synchronize the subscription for the first time, the objects and metadata required by replication are copied to the subscription database.

Per inizializzare manualmente una sottoscrizione a una pubblicazioneTo initialize a subscription to a publication manually

  1. Verificare che lo schema e i dati vengano copiati nel database di sottoscrizione.Ensure that the schema and data are copied to the subscription database.

  2. Deselezionare la casella di controllo Inizializza nella pagina Inizializzazione sottoscrizioni della Creazione guidata nuova sottoscrizione.Clear the Initialize check box on the Initialize Subscriptions page of the New Subscription Wizard. Eseguire questa procedura per ogni sottoscrizione che richiede la copia solo degli oggetti e dei metadati di replica.Do this for each subscription that requires only replication objects and metadata to be copied.

Utilizzo di Transact-SQL Using Transact-SQL

È possibile inizializzare manualmente le sottoscrizioni tramite le stored procedure di replica.Subscriptions can be initialized manually using replication stored procedures.

Per inizializzare manualmente una sottoscrizione pull di una pubblicazione transazionaleTo manually initialize a pull subscription to a transactional publication

  1. Verificare che lo schema e i dati esistano nel database di sottoscrizione.Ensure that the schema and data exist on the subscription database. Per altre informazioni, vedere Initialize a Transactional Subscription Without a Snapshot.For more information, see Initialize a Transactional Subscription Without a Snapshot.

  2. Nel database di pubblicazione del server di pubblicazione eseguire sp_addsubscription.At the Publisher on the publication database, execute sp_addsubscription. Specificare @publication, @subscriber, il nome del database nel Sottoscrittore contenente i dati pubblicati per @destination_db, il valore pull per @subscription_typee il valore replication support only per @sync_type.Specify @publication, @subscriber, the name of the database at the Subscriber containing the published data for @destination_db, a value of pull for @subscription_type, and a value of replication support only for @sync_type. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  3. Nel Sottoscrittore eseguire sp_addpullsubscription.At the Subscriber, execute sp_addpullsubscription. Per le sottoscrizioni di aggiornamento, vedere Create an Updatable Subscription to a Transactional Publication.For updating subscriptions, see Create an Updatable Subscription to a Transactional Publication.

  4. Nel Sottoscrittore eseguire sp_addpullsubscription_agent.At the Subscriber, execute sp_addpullsubscription_agent. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  5. Avviare l'agente di distribuzione per trasferire gli oggetti di replica e scaricare le modifiche più recenti dal server di pubblicazione.Start the Distribution Agent to transfer replication objects and download the latest changes from the Publisher. Per altre informazioni, vedere Synchronize a Pull Subscription.For more information, see Synchronize a Pull Subscription.

Per inizializzare manualmente una sottoscrizione push di una pubblicazione transazionaleTo manually initialize a push subscription to a transactional publication

  1. Verificare che lo schema e i dati esistano nel database di sottoscrizione.Ensure that the schema and data exist on the subscription database. Per altre informazioni, vedere Initialize a Transactional Subscription Without a Snapshot.For more information, see Initialize a Transactional Subscription Without a Snapshot.

  2. Nel database di pubblicazione del server di pubblicazione eseguire sp_addsubscription.At the Publisher on the publication database, execute sp_addsubscription. Specificare il nome del database nel Sottoscrittore contenente i dati pubblicati per @destination_db, il valore push per @subscription_typee il valore replication support only per @sync_type.Specify the name of the database at the Subscriber containing the published data for @destination_db, a value of push for @subscription_type, and a value of replication support only for @sync_type. Per le sottoscrizioni di aggiornamento, vedere Create an Updatable Subscription to a Transactional Publication.For updating subscriptions, see Create an Updatable Subscription to a Transactional Publication.

  3. Nel database di pubblicazione del server di pubblicazione eseguire sp_addpushsubscription_agent.At the Publisher on the publication database, execute sp_addpushsubscription_agent. Per altre informazioni, vedere Create a Push Subscription.For more information, see Create a Push Subscription.

  4. Avviare l'agente di distribuzione per trasferire gli oggetti di replica e scaricare le modifiche più recenti dal server di pubblicazione.Start the Distribution Agent to transfer replication objects and download the latest changes from the Publisher. Per altre informazioni, vedere Synchronize a Push Subscription.For more information, see Synchronize a Push Subscription.

Per inizializzare manualmente una sottoscrizione pull di una pubblicazione di tipo mergeTo manually initialize a pull subscription to a merge publication

  1. Verificare che lo schema e i dati esistano nel database di sottoscrizione.Ensure that the schema and data exist on the subscription database. Questa verifica può essere eseguita ripristinando un backup del database di pubblicazione nel Sottoscrittore.This can be done by restoring a backup of the publication database at the Subscriber.

  2. Nel server di pubblicazione eseguire sp_addmergesubscription.At the Publisher, execute sp_addmergesubscription. Specificare @publication, @subscriber, @subscriber_dbe il valore pull per @subscription_type.Specify @publication, @subscriber, @subscriber_db, and a value of pull for @subscription_type. In questo modo la sottoscrizione pull viene registrata.This registers the pull subscription.

  3. Nel database di sottoscrizione del Sottoscrittore contenente i dati pubblicati eseguire sp_addmergepullsubscription.At the Subscriber on the database containing the published data, execute sp_addmergepullsubscription. Specificare il valore none per @sync_type.Specify a value of none for @sync_type.

  4. Nel Sottoscrittore eseguire sp_addmergepullsubscription_agent.At the Subscriber, execute sp_addmergepullsubscription_agent. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  5. Avviare l'agente di merge per trasferire gli oggetti di replica e scaricare le modifiche più recenti dal server di pubblicazione.Start the Merge Agent to transfer replication objects and download the latest changes from the Publisher. Per altre informazioni, vedere Synchronize a Pull Subscription.For more information, see Synchronize a Pull Subscription.

Per inizializzare manualmente una sottoscrizione push di una pubblicazione di tipo mergeTo manually initialize a push subscription to a merge publication

  1. Verificare che lo schema e i dati esistano nel database di sottoscrizione.Ensure that the schema and data exist on the subscription database. Questa verifica può essere eseguita ripristinando un backup del database di pubblicazione nel Sottoscrittore.This can be done by restoring a backup of the publication database at the Subscriber.

  2. Nel database di pubblicazione del server di pubblicazione eseguire sp_addmergesubscription.At the Publisher on the publication database, execute sp_addmergesubscription. Specificare il nome del database nel Sottoscrittore contenente i dati pubblicati per @subscriber_db, il valore push per @subscription_typee il valore none per @sync_type.Specify the name of the database at the Subscriber containing the published data for @subscriber_db, a value of push for @subscription_type, and a value of none for @sync_type.

  3. Nel database di pubblicazione del server di pubblicazione eseguire sp_addmergepushsubscription_agent.At the Publisher on the publication database, execute sp_addmergepushsubscription_agent. Per altre informazioni, vedere Create a Push Subscription.For more information, see Create a Push Subscription.

  4. Avviare l'agente di merge per trasferire gli oggetti di replica e scaricare le modifiche più recenti dal server di pubblicazione.Start the Merge Agent to transfer replication objects and download the latest changes from the Publisher. Per altre informazioni, vedere Synchronize a Push Subscription.For more information, see Synchronize a Push Subscription.

Vedere ancheSee Also

Initialize a Transactional Subscription Without a Snapshot Initialize a Transactional Subscription Without a Snapshot
Backup e ripristino di database replicati Back Up and Restore Replicated Databases
Procedure consigliate per la sicurezza della replica Replication Security Best Practices