Impostazione di pianificazioni della sincronizzazioneSpecify Synchronization Schedules

In questo argomento viene descritto come specificare le pianificazioni di sincronizzazione in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo RMO (Replication Management Objects).This topic describes how to specify synchronization schedules in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO). Quando si crea una sottoscrizione, è possibile definire una pianificazione della sincronizzazione per controllare l'esecuzione dell'agente di replica per la sottoscrizione.When you create a subscription, you can define a synchronization schedule that controls when the replication agent for the subscription will run. Se non si specificano parametri di pianificazione, per la sottoscrizione verrà utilizzata la pianificazione predefinita.If you do not specify scheduling parameters, the subscription will use the default schedule.

Le sottoscrizioni vengono sincronizzate dall'agente di distribuzione, per la replica snapshot e transazionale, o dall'agente di merge, per la replica di tipo merge.Subscriptions are synchronized by the Distribution Agent (for snapshot and transactional replication) or the Merge Agent (for merge replication). Gli agenti possono essere in esecuzione continuamente, essere in esecuzione su richiesta o essere in esecuzione su una pianificazione.Agents can run continuously, run on demand, or run on a schedule.

Contenuto dell'argomentoIn This Topic

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Impostare le pianificazioni della sincronizzazione nella pagina Pianificazione della sincronizzazione della Creazione guidata nuova sottoscrizione.Specify synchronization schedules on the Synchronization Schedule page of the New Subscription Wizard. Per ulteriori informazioni sull'accesso a questa procedura guidata, vedere Create a Push Subscription e Create a Pull Subscription.For more information about accessing this wizard, see Create a Push Subscription and Create a Pull Subscription.

Modificare le pianificazioni della sincronizzazione nella finestra di dialogo Proprietà pianificazione processo , alla quale è possibile accedere dalla cartella Processi in SQL Server Management StudioSQL Server Management Studio e dalle finestre relative ai dettagli dell'agente in Monitoraggio replica.Modify synchronization schedules in the Job Schedule Properties dialog box, which is available from the Jobs folder in SQL Server Management StudioSQL Server Management Studio and from the agent details windows in Replication Monitor. Per informazioni sull'avvio di Monitoraggio replica, vedere Avviare Monitoraggio replica.For information about starting Replication Monitor, see Start the Replication Monitor.

Se si specificano le pianificazioni dalla cartella Processi , utilizzare la tabella seguente per determinare il nome del processo dell'agente.If you specify schedules from the Jobs folder, use the following table to determine the agent job name.

AgenteAgent Nome processoJob name
Agente di merge per le sottoscrizioni pullMerge Agent for pull subscriptions <ServerPubblicazione>-<DatabasePubblicazione>-<Pubblicazione>-<Sottoscrittore>-<DatabaseSottoscrizione>-<intero><Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<integer>
Agente di merge per le sottoscrizioni pushMerge Agent for push subscriptions <ServerPubblicazione>-<DatabasePubblicazione>-<Pubblicazione>-<Sottoscrittore>-<intero><Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Agente di distribuzione per le sottoscrizioni pushDistribution Agent for push subscriptions <ServerPubblicazione>-<DatabasePubblicazione>-<Pubblicazione>-<Sottoscrittore>-<intero> 1<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer> 1
Agente di distribuzione per le sottoscrizioni pullDistribution Agent for pull subscriptions <ServerPubblicazione>-<DatabasePubblicazione>-<Pubblicazione>-<Sottoscrittore>-<DatabaseSottoscrizione>-<GUID> 2<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID> 2
Agente di distribuzione per le sottoscrizioni push di Sottoscrittori non SQL ServerDistribution Agent for push subscriptions to non-SQL Server Subscribers <ServerPubblicazione>-<DatabasePubblicazione>-<Pubblicazione>-<Sottoscrittore>-<intero><Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>

1 Per le sottoscrizioni push di pubblicazioni Oracle, è <ServerPubblicazione>-<ServerPubblicazione> invece di <ServerPubblicazione>-<DatabasePubblicazione>1 For push subscriptions to Oracle publications, it is <Publisher>-<Publisher> rather than <Publisher>-<PublicationDatabase>

2 Per le sottoscrizioni pull di pubblicazioni Oracle, è <ServerPubblicazione>-<DatabaseDistribuzione> invece di <ServerPubblicazione>-<DatabasePubblicazione>2 For pull subscriptions to Oracle publications, it is <Publisher>-<DistributionDatabase> rather than <Publisher>-<PublicationDatabase>

Per impostare le pianificazioni della sincronizzazioneTo specify synchronization schedules

  1. Nella pagina Pianificazione della sincronizzazione della Creazione guidata nuova sottoscrizione selezionare uno dei valori seguenti nell'elenco a discesa Pianificazione agente per ogni sottoscrizione creata:On the SynchronizationSchedule page of the New Subscription Wizard, select one of the following values from the Agent Schedule drop-down list for each subscription you are creating:

    • Esecuzione continuaRun continuously

    • Esecuzione solo su richiestaRun on demand only

    • <Definisci pianificazione><Define Schedule…>

  2. Se si seleziona <Definisci pianificazione>, specificare una pianificazione nella finestra di dialogo Proprietà pianificazione processo e quindi fare clic su OK.If you select <Define Schedule…>, specify a schedule in the Job Schedule Properties dialog box, and then click OK.

  3. Completare la procedura guidata.Complete the wizard.

Per modificare una pianificazione della sincronizzazione per una sottoscrizione push in Monitoraggio replicaTo modify a synchronization schedule for a push subscription in Replication Monitor

  1. Espandere un gruppo di server di pubblicazione nel riquadro a sinistra di Monitoraggio replica, espandere un server di pubblicazione e quindi fare clic su una pubblicazione.Expand a Publisher group in the left pane of Replication Monitor, expand a Publisher, and then click a publication.

  2. Fare clic sulla scheda Tutte le sottoscrizioni .Click the All Subscriptions tab.

  3. Fare clic con il pulsante destro del mouse su una sottoscrizione e quindi scegliere Visualizza dettagli.Right-click a subscription, and then click View Details.

  4. Nella finestra Sottoscrizione fare clic su Azione e quindi su Proprietà processo - <NomeAgente>.In the Subscription < SubscriptionName> window, click Action, and then click <AgentName> Job Properties.

  5. Nella pagina Pianificazioni della finestra di dialogo Proprietà processo - <NomeProcesso> fare clic su Modifica.On the Schedules page of the Job Properties - <JobName> dialog box, click Edit.

  6. Nella finestra di dialogo Proprietà pianificazione processo selezionare un valore nell'elenco a discesa Tipo pianificazione :In the Job Schedule Properties dialog box, select a value from the Schedule Type drop-down list:

    • Per specificare che l'agente deve essere eseguito in modo continuo, selezionare Avvia automaticamente all'avvio di SQL Server Agent.To specify that the agent should run continuously, select Start automatically when SQL Server Agent starts.

    • Per specificare che l'agente deve essere eseguito in base a una pianificazione, selezionare Periodica.To specify that the agent should run on a schedule, select Recurring.

    • Per specificare che l'agente deve essere eseguito su richiesta, selezionare Singola occorrenza.To specify that the agent should run on demand, select One time.

  7. Se si seleziona Periodica, specificare una pianificazione per l'agente.If you select Recurring, specify a schedule for the agent.

  8. Fare clic su OK.Click OK.

Per modificare una pianificazione della sincronizzazione per una sottoscrizione push in Management StudioTo modify a synchronization schedule for a push subscription in Management Studio

  1. Connettersi al server di distribuzione in Management StudioManagement Studioe quindi espandere il nodo del server.Connect to the Distributor in Management StudioManagement Studio, and then expand the server node.

  2. Espandere la cartella SQL Server Agent e quindi la cartella Processi .Expand the SQL Server Agent folder, and then expand the Jobs folder.

  3. Fare clic con il pulsante destro del mouse sull'agente di distribuzione o sull'agente di merge associato alla sottoscrizione e quindi scegliere Proprietà.Right-click the job for the Distribution Agent or Merge Agent associated with the subscription, and then click Properties.

  4. Nella pagina Pianificazioni della finestra di dialogo Proprietà processo - <NomeProcesso> fare clic su Modifica.On the Schedules page of the Job Properties - <JobName> dialog box, click Edit.

  5. Nella finestra di dialogo Proprietà pianificazione processo selezionare un valore nell'elenco a discesa Tipo pianificazione :In the Job Schedule Properties dialog box, select a value from the Schedule Type drop-down list:

    • Per specificare che l'agente deve essere eseguito in modo continuo, selezionare Avvia automaticamente all'avvio di SQL Server Agent.To specify that the agent should run continuously, select Start automatically when SQL Server Agent starts.

    • Per specificare che l'agente deve essere eseguito in base a una pianificazione, selezionare Periodica.To specify that the agent should run on a schedule, select Recurring.

    • Per specificare che l'agente deve essere eseguito su richiesta, selezionare Singola occorrenza.To specify that the agent should run on demand, select One time.

  6. Se si seleziona Periodica, specificare una pianificazione per l'agente.If you select Recurring, specify a schedule for the agent.

  7. Fare clic su OK.Click OK.

Per modificare una pianificazione della sincronizzazione per una sottoscrizione pull in Management StudioTo modify a synchronization schedule for a pull subscription in Management Studio

  1. Connettersi al Sottoscrittore in Management StudioManagement Studioe quindi espandere il nodo del server.Connect to the Subscriber in Management StudioManagement Studio, and then expand the server node.

  2. Espandere la cartella SQL Server Agent e quindi la cartella Processi .Expand the SQL Server Agent folder, and then expand the Jobs folder.

  3. Fare clic con il pulsante destro del mouse sull'agente di distribuzione o sull'agente di merge associato alla sottoscrizione e quindi scegliere Proprietà.Right-click the job for the Distribution Agent or Merge Agent associated with the subscription, and then click Properties.

  4. Nella pagina Pianificazioni della finestra di dialogo Proprietà processo - <NomeProcesso> fare clic su Modifica.On the Schedules page of the Job Properties - <JobName> dialog box, click Edit.

  5. Nella finestra di dialogo Proprietà pianificazione processo selezionare un valore nell'elenco a discesa Tipo pianificazione :In the Job Schedule Properties dialog box, select a value from the Schedule Type drop-down list:

    • Per specificare che l'agente deve essere eseguito in modo continuo, selezionare Avvia automaticamente all'avvio di SQL Server Agent.To specify that the agent should run continuously, select Start automatically when SQL Server Agent starts.

    • Per specificare che l'agente deve essere eseguito in base a una pianificazione, selezionare Periodica.To specify that the agent should run on a schedule, select Recurring.

    • Per specificare che l'agente deve essere eseguito su richiesta, selezionare Singola occorrenza.To specify that the agent should run on demand, select One time.

  6. Se si seleziona Periodica, specificare una pianificazione per l'agente.If you select Recurring, specify a schedule for the agent.

  7. Fare clic su OK.Click OK.

Utilizzo di Transact-SQL Using Transact-SQL

È possibile definire pianificazioni della sincronizzazione a livello di programmazione tramite stored procedure di replica.You can define synchronization schedules programmatically using replication stored procedures. Le stored procedure utilizzate dipendono dal tipo di replica e dal tipo di sottoscrizione (pull o push).The stored procedures that you use depend on the type of replication and the type of subscription (pull or push).

Una pianificazione è definita dai parametri di programmazione seguenti, i cui comportamenti vengono ereditati da sp_add_schedule (Transact-SQL):A schedule is defined by the following scheduling parameters, the behaviors of which are inherited from sp_add_schedule (Transact-SQL):

  • @frequency_type : tipo di frequenza utilizzata per la pianificazione dell'agente.@frequency_type - the type of frequency used when scheduling the agent.

  • @frequency_interval : giorno della settimana in cui viene eseguito un agente.@frequency_interval - the day of the week when an agent runs.

  • @frequency_relative_interval : settimana di un determinato mese in cui è pianificata l'esecuzione mensile dell'agente.@frequency_relative_interval - the week of a given month when the agent is scheduled to run monthly.

  • @frequency_recurrence_factor : numero di unità relative al tipo di frequenza tra sincronizzazioni.@frequency_recurrence_factor - the number of frequency-type units that occur between synchronizations.

  • @frequency_subday : unità della frequenza quando l'agente viene eseguito più di una volta al giorno.@frequency_subday - the frequency unit when the agent runs more often than once a day.

  • @frequency_subday_interval : numero di unità della frequenza tra un'esecuzione e l'altra quando l'agente viene eseguito più di una volta al giorno.@frequency_subday_interval - the number of frequency units between runs when the agent runs more often than once a day.

  • @active_start_time_of_day : ora di un determinato giorno in cui un agente viene avviato per la prima volta.@active_start_time_of_day - the earliest time in a given day when an agent run will start.

  • @active_end_time_of_day : ora di un determinato giorno in cui un agente viene avviato per l'ultima volta.@active_end_time_of_day - the latest time in a given day when an agent run will start.

  • @active_start_date : primo giorno di applicazione della pianificazione dell'agente.@active_start_date - the first day that the agent schedule will be in effect.

  • @active_end_date : ultimo giorno di applicazione della pianificazione dell'agente.@active_end_date - the last day that the agent schedule will be in effect.

Per definire la pianificazione della sincronizzazione per una sottoscrizione pull di una pubblicazione transazionaleTo define the synchronization schedule for a pull subscription to a transactional publication

  1. Creare una nuova sottoscrizione pull di una pubblicazione transazionale.Create a new pull subscription to a transactional publication. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  2. Nel Sottoscrittore eseguire sp_addpullsubscription_agent (Transact-SQL).At the Subscriber, execute sp_addpullsubscription_agent (Transact-SQL). Specificare @publisher, @publisher_db, @publicatione le credenziali di MicrosoftMicrosoft Windows utilizzate per eseguire l'agente di distribuzione nel Sottoscrittore per @job_name e @password.Specify @publisher, @publisher_db, @publication, and the MicrosoftMicrosoft Windows credentials under which the Distribution Agent at the Subscriber runs for @job_name and @password. Specificare i parametri di sincronizzazione, descritti in dettaglio in precedenza, con cui definire la pianificazione per il processo dell'agente di distribuzione che sincronizza la sottoscrizione.Specify the synchronization parameters, detailed above, that define the schedule for the Distribution Agent job that synchronizes the subscription.

Per definire la pianificazione della sincronizzazione per una sottoscrizione push di una pubblicazione transazionaleTo define the synchronization schedule for a push subscription to a transactional publication

  1. Creare una nuova sottoscrizione push di una pubblicazione transazionale.Create a new push subscription to a transactional publication. Per altre informazioni, vedere Create a Push Subscription.For more information, see Create a Push Subscription.

  2. Nel Sottoscrittore eseguire sp_addpushsubscription_agent (Transact-SQL).At the Subscriber, execute sp_addpushsubscription_agent (Transact-SQL). Specificare @subscriber, @subscriber_db, @publicatione le credenziali di Windows utilizzate per eseguire l'agente di distribuzione nel Sottoscrittore per @job_name e @password.Specify @subscriber, @subscriber_db, @publication, and the Windows credentials under which the Distribution Agent at the Subscriber runs for @job_name and @password. Specificare i parametri di sincronizzazione, descritti in dettaglio in precedenza, con cui definire la pianificazione per il processo dell'agente di distribuzione che sincronizza la sottoscrizione.Specify the synchronization parameters, detailed above, that define the schedule for the Distribution Agent job that synchronizes the subscription.

Per definire la pianificazione della sincronizzazione per una sottoscrizione pull di una pubblicazione di tipo mergeTo define the synchronization schedule for a pull subscription to a merge publication

  1. Creare una nuova sottoscrizione pull di una pubblicazione di tipo merge.Create a new pull subscription to a merge publication. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  2. Nel Sottoscrittore eseguire sp_addmergepullsubscription_agent.At the Subscriber, execute sp_addmergepullsubscription_agent. Specificare @publisher, @publisher_db, @publicatione le credenziali di Windows utilizzate per eseguire l'agente di merge nel Sottoscrittore per @job_name e @password.Specify @publisher, @publisher_db, @publication, and the Windows credentials under which the Merge Agent at the Subscriber runs for @job_name and @password. Specificare i parametri di sincronizzazione, descritti in dettaglio in precedenza, con cui definire la pianificazione per il processo dell'agente di merge che sincronizza la sottoscrizione.Specify the synchronization parameters, detailed above, that define the schedule for the Merge Agent job that synchronizes the subscription.

Per definire la pianificazione della sincronizzazione per una sottoscrizione push di una pubblicazione di tipo mergeTo define the synchronization schedule for a push subscription to a merge publication

  1. Creare una nuova sottoscrizione push di una pubblicazione di tipo merge.Create a new push subscription to a merge publication. Per altre informazioni, vedere Create a Push Subscription.For more information, see Create a Push Subscription.

  2. Nel Sottoscrittore eseguire sp_addmergepushsubscription_agent.At the Subscriber, execute sp_addmergepushsubscription_agent. Specificare @subscriber, @subscriber_db, @publicatione le credenziali di Windows utilizzate per eseguire l'agente di merge nel Sottoscrittore per @job_name e @password.Specify @subscriber, @subscriber_db, @publication, and the Windows credentials under which the Merge Agent at the Subscriber runs for @job_name and @password. Specificare i parametri di sincronizzazione, descritti in dettaglio in precedenza, con cui definire la pianificazione per il processo dell'agente di merge che sincronizza la sottoscrizione.Specify the synchronization parameters, detailed above, that define the schedule for the Merge Agent job that synchronizes the subscription.

Utilizzo di RMO (Replication Management Objects) Using Replication Management Objects (RMO)

La replica utilizza SQL Server Agent per pianificare i processi per attività che vengono svolte periodicamente, ad esempio la generazione di snapshot e la sincronizzazione delle sottoscrizioni.Replication uses the SQL Server Agent to schedule jobs for activities that occur periodically, such as snapshot generation and subscription synchronization. È possibile utilizzare gli oggetti RMO (Replication Management Objects) a livello di programmazione per specificare le pianificazioni per i processi dell'agente di replica.You can use Replication Management Objects (RMO) programmatically to specify schedules for replication agent jobs.

Nota

Quando si crea una sottoscrizione e si specifica un valore false per CreateSyncAgentByDefault (comportamento predefinito per le sottoscrizioni pull), il processo dell'agente non viene creato e le proprietà di pianificazione vengono ignorate.When you create a subscription and specify a value false for CreateSyncAgentByDefault (the default behavior for pull subscriptions) the agent job is not created and scheduling properties are ignored. In questo caso, la pianificazione della sincronizzazione deve essere determinata dall'applicazione.In this case, the synchronization schedule must be determined by the application. Per ulteriori informazioni, vedere Create a Pull Subscription e Create a Push Subscription.For more information, see Create a Pull Subscription and Create a Push Subscription.

Per definire una pianificazione dell'agente di replica quando si crea una sottoscrizione push di una pubblicazione transazionaleTo define a replication agent schedule when you create a push subscription to a transactional publication

  1. Creare un'istanza della classe TransSubscription per la sottoscrizione da creare.Create an instance of the TransSubscription class for the subscription you are creating. Per altre informazioni, vedere Create a Push Subscription.For more information, see Create a Push Subscription.

  2. Prima di chiamare Create, impostare uno o più dei seguenti campi della proprietà AgentSchedule :Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType : tipo di frequenza (ad esempio giornaliera o settimanale) utilizzata per la pianificazione dell'agente.FrequencyType - the type of frequency (such as daily or weekly) you use when you schedule the agent.

    • FrequencyInterval : giorno della settimana in cui viene eseguito un agente.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval : settimana di un determinato mese in cui è pianificata l'esecuzione mensile dell'agente.FrequencyRelativeInterval - the week of a given month when the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor : numero di unità relative al tipo di frequenza tra sincronizzazioni.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay : unità della frequenza quando l'agente viene eseguito più di una volta al giorno.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval : numero di unità della frequenza tra un'esecuzione e l'altra quando l'agente viene eseguito più di una volta al giorno.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime : ora di un determinato giorno in cui un agente viene avviato per la prima volta.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime : ora di un determinato giorno in cui un agente viene avviato per l'ultima volta.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate : primo giorno di applicazione della pianificazione dell'agente.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate : ultimo giorno di applicazione della pianificazione dell'agente.ActiveEndDate - last day that the agent schedule is in effect.

    Nota

    Se una di queste proprietà viene omessa, viene impostato un valore predefinito.If you do not specify one of these properties, a default value is set.

  3. Chiamare il metodo Create per creare la sottoscrizione.Call the Create method to create the subscription.

Per definire una pianificazione dell'agente di replica quando si crea una sottoscrizione pull di una pubblicazione transazionaleTo define a replication agent schedule when you create a pull subscription to a transactional publication

  1. Creare un'istanza della classe TransPullSubscription per la sottoscrizione da creare.Create an instance of the TransPullSubscription class for the subscription you are creating. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  2. Prima di chiamare Create, impostare uno o più dei seguenti campi della proprietà AgentSchedule :Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType : tipo di frequenza (ad esempio giornaliera o settimanale) utilizzata per la pianificazione dell'agente.FrequencyType - the type of frequency (such as daily or weekly) that you use when you schedule the agent.

    • FrequencyInterval : giorno della settimana in cui viene eseguito un agente.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval : settimana di un determinato mese in cui è pianificata l'esecuzione mensile dell'agente.FrequencyRelativeInterval - the week of a given month that the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor : numero di unità relative al tipo di frequenza tra sincronizzazioni.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay : unità della frequenza quando l'agente viene eseguito più di una volta al giorno.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval : numero di unità della frequenza tra un'esecuzione e l'altra quando l'agente viene eseguito più di una volta al giorno.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime : ora di un determinato giorno in cui un agente viene avviato per la prima volta.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime : ora di un determinato giorno in cui un agente viene avviato per l'ultima volta.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate : primo giorno di applicazione della pianificazione dell'agente.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate : ultimo giorno di applicazione della pianificazione dell'agente.ActiveEndDate - last day that the agent schedule is in effect.

    Nota

    Se una di queste proprietà viene omessa, viene impostato un valore predefinito.If you do not specify one of these properties, a default value is set.

  3. Chiamare il metodo Create per creare la sottoscrizione.Call the Create method to create the subscription.

Per definire una pianificazione dell'agente di replica quando si crea una sottoscrizione pull di una pubblicazione di tipo mergeTo define a replication agent schedule when you create a pull subscription to a merge publication

  1. Creare un'istanza della classe MergePullSubscription per la sottoscrizione da creare.Create an instance of the MergePullSubscription class for the subscription you are creating. Per altre informazioni, vedere Create a Pull Subscription.For more information, see Create a Pull Subscription.

  2. Prima di chiamare Create, impostare uno o più dei seguenti campi della proprietà AgentSchedule :Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType : tipo di frequenza (ad esempio giornaliera o settimanale) utilizzata per la pianificazione dell'agente.FrequencyType - the type of frequency (such as daily or weekly) that you use when you schedule the agent.

    • FrequencyInterval : giorno della settimana in cui viene eseguito un agente.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval : settimana di un determinato mese in cui è pianificata l'esecuzione mensile dell'agente.FrequencyRelativeInterval - the week of a given month that the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor : numero di unità relative al tipo di frequenza tra sincronizzazioni.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay : unità della frequenza quando l'agente viene eseguito più di una volta al giorno.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval : numero di unità della frequenza tra un'esecuzione e l'altra quando l'agente viene eseguito più di una volta al giorno.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime : ora di un determinato giorno in cui un agente viene avviato per la prima volta.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime : ora di un determinato giorno in cui un agente viene avviato per l'ultima volta.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate : primo giorno di applicazione della pianificazione dell'agente.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate : ultimo giorno di applicazione della pianificazione dell'agente.ActiveEndDate - last day that the agent schedule is in effect.

    Nota

    Se una di queste proprietà viene omessa, viene impostato un valore predefinito.If you do not specify one of these properties, a default value is set.

  3. Chiamare il metodo Create per creare la sottoscrizione.Call the Create method to create the subscription.

Per definire una pianificazione dell'agente di replica quando si crea una sottoscrizione push di una pubblicazione di tipo mergeTo define a replication agent schedule when you create a push subscription to a merge publication

  1. Creare un'istanza della classe MergeSubscription per la sottoscrizione da creare.Create an instance of the MergeSubscription class for the subscription you are creating. Per altre informazioni, vedere Create a Push Subscription.For more information, see Create a Push Subscription.

  2. Prima di chiamare Create, impostare uno o più dei seguenti campi della proprietà AgentSchedule :Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType : tipo di frequenza (ad esempio giornaliera o settimanale) utilizzata per la pianificazione dell'agente.FrequencyType - the type of frequency (such as daily or weekly) that you use when you schedule the agent.

    • FrequencyInterval : giorno della settimana in cui viene eseguito un agente.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval : settimana di un determinato mese in cui è pianificata l'esecuzione mensile dell'agente.FrequencyRelativeInterval - the week of a given month that the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor : numero di unità relative al tipo di frequenza tra sincronizzazioni.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay : unità della frequenza quando l'agente viene eseguito più di una volta al giorno.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval : numero di unità della frequenza tra un'esecuzione e l'altra quando l'agente viene eseguito più di una volta al giorno.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime : ora di un determinato giorno in cui un agente viene avviato per la prima volta.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime : ora di un determinato giorno in cui un agente viene avviato per l'ultima volta.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate : primo giorno di applicazione della pianificazione dell'agente.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate : ultimo giorno di applicazione della pianificazione dell'agente.ActiveEndDate - last day that the agent schedule is in effect.

    Nota

    Se una di queste proprietà viene omessa, viene impostato un valore predefinito.If you do not specify one of these properties, a default value is set.

  3. Chiamare il metodo Create per creare la sottoscrizione.Call the Create method to create the subscription.

Esempio (RMO) Example (RMO)

In questo esempio viene creata una sottoscrizione push di una pubblicazione di tipo merge e viene specificata la pianificazione per la sincronizzazione di tale sottoscrizione.This example creates a push subscription to a merge publication and specifies the schedule on which the subscription is synchronized.

// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";

//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(subscriberName);

// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;

try
{
	// Connect to the Publisher.
	conn.Connect();

	// Ensure that the publication exists and that 
	// it supports push subscriptions.
	publication = new MergePublication();
	publication.Name = publicationName;
	publication.DatabaseName = publicationDbName;
	publication.ConnectionContext = conn;

	if (publication.IsExistingObject)
	{
		if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
		{
			publication.Attributes |= PublicationAttributes.AllowPush;
		}

		// Define the push subscription.
		subscription = new MergeSubscription();
		subscription.ConnectionContext = conn;
		subscription.SubscriberName = subscriberName;
		subscription.PublicationName = publicationName;
		subscription.DatabaseName = publicationDbName;
		subscription.SubscriptionDBName = subscriptionDbName;
		subscription.HostName = hostname;

		// Set a schedule to synchronize the subscription every 2 hours
		// during weekdays from 6am to 10pm.
		subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
		subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
		subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
		subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
		subscription.AgentSchedule.FrequencySubDayInterval = 2;
		subscription.AgentSchedule.ActiveStartDate = 20051108;
		subscription.AgentSchedule.ActiveEndDate = 20071231;
		subscription.AgentSchedule.ActiveStartTime = 060000;
		subscription.AgentSchedule.ActiveEndTime = 100000;

		// Specify the Windows login credentials for the Merge Agent job.
		subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
		subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

		// Create the push subscription.
		subscription.Create();
	}
	else
	{
		// Do something here if the publication does not exist.
		throw new ApplicationException(String.Format(
			"The publication '{0}' does not exist on {1}.",
			publicationName, publisherName));
	}
}
catch (Exception ex)
{
	// Implement the appropriate error handling here.
	throw new ApplicationException(String.Format(
		"The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
	conn.Disconnect();
}
// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";

//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(subscriberName);

// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;

try
{
	// Connect to the Publisher.
	conn.Connect();

	// Ensure that the publication exists and that 
	// it supports push subscriptions.
	publication = new MergePublication();
	publication.Name = publicationName;
	publication.DatabaseName = publicationDbName;
	publication.ConnectionContext = conn;

	if (publication.IsExistingObject)
	{
		if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
		{
			publication.Attributes |= PublicationAttributes.AllowPush;
		}

		// Define the push subscription.
		subscription = new MergeSubscription();
		subscription.ConnectionContext = conn;
		subscription.SubscriberName = subscriberName;
		subscription.PublicationName = publicationName;
		subscription.DatabaseName = publicationDbName;
		subscription.SubscriptionDBName = subscriptionDbName;
		subscription.HostName = hostname;

		// Set a schedule to synchronize the subscription every 2 hours
		// during weekdays from 6am to 10pm.
		subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
		subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
		subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
		subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
		subscription.AgentSchedule.FrequencySubDayInterval = 2;
		subscription.AgentSchedule.ActiveStartDate = 20051108;
		subscription.AgentSchedule.ActiveEndDate = 20071231;
		subscription.AgentSchedule.ActiveStartTime = 060000;
		subscription.AgentSchedule.ActiveEndTime = 100000;

		// Specify the Windows login credentials for the Merge Agent job.
		subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
		subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

		// Create the push subscription.
		subscription.Create();
	}
	else
	{
		// Do something here if the publication does not exist.
		throw new ApplicationException(String.Format(
			"The publication '{0}' does not exist on {1}.",
			publicationName, publisherName));
	}
}
catch (Exception ex)
{
	// Implement the appropriate error handling here.
	throw new ApplicationException(String.Format(
		"The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
	conn.Disconnect();
}

' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"

'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(subscriberName)

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New MergePublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Define the push subscription.
        subscription = New MergeSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName
        subscription.HostName = hostname

        ' Set a schedule to synchronize the subscription every 2 hours
        ' during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
        subscription.AgentSchedule.FrequencySubDayInterval = 2
        subscription.AgentSchedule.ActiveStartDate = 20051108
        subscription.AgentSchedule.ActiveEndDate = 20071231
        subscription.AgentSchedule.ActiveStartTime = 60000
        subscription.AgentSchedule.ActiveEndTime = 100000

        ' Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' Create the push subscription.
        subscription.Create()
    Else

        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
    "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"

'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(subscriberName)

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New MergePublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Define the push subscription.
        subscription = New MergeSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName
        subscription.HostName = hostname

        ' Set a schedule to synchronize the subscription every 2 hours
        ' during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
        subscription.AgentSchedule.FrequencySubDayInterval = 2
        subscription.AgentSchedule.ActiveStartDate = 20051108
        subscription.AgentSchedule.ActiveEndDate = 20071231
        subscription.AgentSchedule.ActiveStartTime = 60000
        subscription.AgentSchedule.ActiveEndTime = 100000

        ' Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' Create the push subscription.
        subscription.Create()
    Else

        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
    "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Vedere ancheSee Also

Procedure consigliate per la sicurezza della replica Replication Security Best Practices
Sottoscrivere le pubblicazioni Subscribe to Publications
Sincronizzare una sottoscrizione push Synchronize a Push Subscription
Sincronizzare una sottoscrizione pull Synchronize a Pull Subscription
Sincronizzare i datiSynchronize Data