동기화 일정 지정Specify Synchronization Schedules

이 항목에서는 SQL Server 2017SQL Server 2017 , SQL Server Management StudioSQL Server Management Studio또는 RMO(복제 관리 개체)를 사용하여 Transact-SQLTransact-SQL에서 동기화 일정을 지정하는 방법에 대해 설명합니다.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). 구독을 만드는 경우 구독에 대한 복제 에이전트를 실행하는 시기를 제어하는 동기화 일정을 정의할 수 있습니다.When you create a subscription, you can define a synchronization schedule that controls when the replication agent for the subscription will run. 일정 매개 변수를 지정하지 않으면 기본 일정이 사용됩니다.If you do not specify scheduling parameters, the subscription will use the default schedule.

구독은 배포 에이전트(스냅숏 및 트랜잭션 복제의 경우) 또는 병합 에이전트(병합 복제의 경우)에 의해 동기화됩니다.Subscriptions are synchronized by the Distribution Agent (for snapshot and transactional replication) or the Merge Agent (for merge replication). 에이전트는 지속적으로 실행하거나 수요에 따라 실행하거나 일정에 따라 실행할 수 있습니다.Agents can run continuously, run on demand, or run on a schedule.

항목 내용In This Topic

SQL Server Management Studio 사용 Using SQL Server Management Studio

새 구독 마법사의 동기화 일정 페이지에서 동기화 일정을 지정합니다.Specify synchronization schedules on the Synchronization Schedule page of the New Subscription Wizard. 이 마법사의 액세스 방법은 Create a Push SubscriptionCreate a Pull Subscription를 참조하세요.For more information about accessing this wizard, see Create a Push Subscription and Create a Pull Subscription.

작업 일정 속성 대화 상자에서 동기화 일정을 수정합니다. 이 대화 상자는 작업 SQL Server Management StudioSQL Server Management Studio 폴더와 복제 모니터의 에이전트 세부 정보 창에서 사용할 수 있습니다.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. 복제 모니터를 시작하는 방법은 복제 모니터 시작을 참조하세요.For information about starting Replication Monitor, see Start the Replication Monitor.

작업 폴더에서 일정을 지정하는 경우에는 다음 표를 사용하여 에이전트 작업 이름을 결정합니다.If you specify schedules from the Jobs folder, use the following table to determine the agent job name.

에이전트Agent 작업 이름Job name
끌어오기 구독에 대한 병합 에이전트Merge Agent for pull subscriptions <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<integer><Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<integer>
밀어넣기 구독에 대한 병합 에이전트Merge Agent for push subscriptions <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer><Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
밀어넣기 구독에 대한 배포 에이전트Distribution Agent for push subscriptions <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer> 1<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer> 1
끌어오기 구독에 대한 배포 에이전트Distribution Agent for pull subscriptions <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID> 2<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID> 2
SQL Server 이외 구독자의 밀어넣기 구독에 대한 배포 에이전트Distribution Agent for push subscriptions to non-SQL Server Subscribers <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer><Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>

1 Oracle 게시에서 밀어넣기 구독의 경우 <Publisher>-<PublicationDatabase>가 아닌 <Publisher>-<Publisher>입니다.1 For push subscriptions to Oracle publications, it is <Publisher>-<Publisher> rather than <Publisher>-<PublicationDatabase>

2 Oracle 게시에서 끌어오기 구독에 대한 작업 이름은 <Publisher>-<PublicationDatabase>가 아닌 <Publisher>-<DistributionDatabase>입니다.2 For pull subscriptions to Oracle publications, it is <Publisher>-<DistributionDatabase> rather than <Publisher>-<PublicationDatabase>

동기화 일정을 지정하려면To specify synchronization schedules

  1. 새 구독 마법사의 SynchronizationSchedule 페이지에 있는 에이전트 일정 드롭다운 목록에서 만들려는 각 구독에 대해 다음 값 중 하나를 선택합니다.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:

    • 계속 실행Run continuously

    • 요청 시에만 실행Run on demand only

    • <일정 정의...><Define Schedule…>

  2. <일정 정의...>를 선택하면 작업 일정 속성 대화 상자에서 일정을 지정한 다음 확인을 클릭합니다.If you select <Define Schedule…>, specify a schedule in the Job Schedule Properties dialog box, and then click OK.

  3. 마법사를 완료합니다.Complete the wizard.

복제 모니터에서 밀어넣기 구독에 대한 동기화 일정을 수정하려면To modify a synchronization schedule for a push subscription in Replication Monitor

  1. 복제 모니터에서 왼쪽 창의 게시자 그룹을 확장하고 해당 게시자를 확장한 다음 해당 게시를 클릭합니다.Expand a Publisher group in the left pane of Replication Monitor, expand a Publisher, and then click a publication.

  2. 모든 구독 탭을 클릭합니다.Click the All Subscriptions tab.

  3. 구독을 마우스 오른쪽 단추로 클릭한 다음 자세히 보기를 클릭합니다.Right-click a subscription, and then click View Details.

  4. 구독 창에서 작업을 클릭하고 <AgentName> 작업 속성을 클릭합니다.In the Subscription < SubscriptionName> window, click Action, and then click <AgentName> Job Properties.

  5. 작업 속성 - <JobName> 대화 상자의 일정 페이지에서 편집을 클릭합니다.On the Schedules page of the Job Properties - <JobName> dialog box, click Edit.

  6. 작업 일정 속성 대화 상자의 일정 유형 드롭다운 목록에서 값을 선택합니다.In the Job Schedule Properties dialog box, select a value from the Schedule Type drop-down list:

    • 에이전트가 계속 실행되도록 지정하려면 SQL Server 에이전트가 시작될 때 자동으로 시작을 선택합니다.To specify that the agent should run continuously, select Start automatically when SQL Server Agent starts.

    • 에이전트가 일정대로 실행되도록 지정하려면 되풀이를 선택합니다.To specify that the agent should run on a schedule, select Recurring.

    • 에이전트가 요청 시 실행되도록 지정하려면 한 번을 선택합니다.To specify that the agent should run on demand, select One time.

  7. 되풀이를 선택할 경우에는 에이전트의 일정을 지정합니다.If you select Recurring, specify a schedule for the agent.

  8. 확인을 클릭합니다.Click OK.

Management Studio에서 밀어넣기 구독에 대한 동기화 일정을 수정하려면To modify a synchronization schedule for a push subscription in Management Studio

  1. Management StudioManagement Studio에서 배포자에 연결한 다음 해당 서버 노드를 확장합니다.Connect to the Distributor in Management StudioManagement Studio, and then expand the server node.

  2. SQL Server 에이전트 폴더를 확장한 다음 작업 폴더를 확장합니다.Expand the SQL Server Agent folder, and then expand the Jobs folder.

  3. 구독과 연결된 배포 에이전트 또는 병합 에이전트의 작업을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.Right-click the job for the Distribution Agent or Merge Agent associated with the subscription, and then click Properties.

  4. 작업 속성 - <JobName> 대화 상자의 일정 페이지에서 편집을 클릭합니다.On the Schedules page of the Job Properties - <JobName> dialog box, click Edit.

  5. 작업 일정 속성 대화 상자의 일정 유형 드롭다운 목록에서 값을 선택합니다.In the Job Schedule Properties dialog box, select a value from the Schedule Type drop-down list:

    • 에이전트가 계속 실행되도록 지정하려면 SQL Server 에이전트가 시작될 때 자동으로 시작을 선택합니다.To specify that the agent should run continuously, select Start automatically when SQL Server Agent starts.

    • 에이전트가 일정대로 실행되도록 지정하려면 되풀이를 선택합니다.To specify that the agent should run on a schedule, select Recurring.

    • 에이전트가 요청 시 실행되도록 지정하려면 한 번을 선택합니다.To specify that the agent should run on demand, select One time.

  6. 되풀이를 선택할 경우에는 에이전트의 일정을 지정합니다.If you select Recurring, specify a schedule for the agent.

  7. 확인을 클릭합니다.Click OK.

Management Studio에서 끌어오기 구독에 대한 동기화 일정을 수정하려면To modify a synchronization schedule for a pull subscription in Management Studio

  1. Management StudioManagement Studio에서 구독자에 연결한 다음 해당 서버 노드를 확장합니다.Connect to the Subscriber in Management StudioManagement Studio, and then expand the server node.

  2. SQL Server 에이전트 폴더를 확장한 다음 작업 폴더를 확장합니다.Expand the SQL Server Agent folder, and then expand the Jobs folder.

  3. 구독과 연결된 배포 에이전트 또는 병합 에이전트의 작업을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.Right-click the job for the Distribution Agent or Merge Agent associated with the subscription, and then click Properties.

  4. 작업 속성 - <JobName> 대화 상자의 일정 페이지에서 편집을 클릭합니다.On the Schedules page of the Job Properties - <JobName> dialog box, click Edit.

  5. 작업 일정 속성 대화 상자의 일정 유형 드롭다운 목록에서 값을 선택합니다.In the Job Schedule Properties dialog box, select a value from the Schedule Type drop-down list:

    • 에이전트가 계속 실행되도록 지정하려면 SQL Server 에이전트가 시작될 때 자동으로 시작을 선택합니다.To specify that the agent should run continuously, select Start automatically when SQL Server Agent starts.

    • 에이전트가 일정대로 실행되도록 지정하려면 되풀이를 선택합니다.To specify that the agent should run on a schedule, select Recurring.

    • 에이전트가 요청 시 실행되도록 지정하려면 한 번을 선택합니다.To specify that the agent should run on demand, select One time.

  6. 되풀이를 선택할 경우에는 에이전트의 일정을 지정합니다.If you select Recurring, specify a schedule for the agent.

  7. 확인을 클릭합니다.Click OK.

Transact-SQL 사용 Using Transact-SQL

복제 저장 프로시저를 사용하여 프로그래밍 방식으로 동기화 일정을 정의할 수 있습니다.You can define synchronization schedules programmatically using replication stored procedures. 사용되는 저장 프로시저는 복제 유형 및 구독 유형(끌어오기 또는 밀어넣기)에 따라 달라집니다.The stored procedures that you use depend on the type of replication and the type of subscription (pull or push).

일정은 다음 일정 매개 변수로 정의되며 해당 동작은 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 - 에이전트를 예약할 때 사용하는 빈도 유형@frequency_type - the type of frequency used when scheduling the agent.

  • @frequency_interval - 에이전트에서 작업을 실행하는 요일@frequency_interval - the day of the week when an agent runs.

  • @frequency_relative_interval - 지정된 월에서 에이전트가 월별로 실행되도록 예약된 주입니다.@frequency_relative_interval - the week of a given month when the agent is scheduled to run monthly.

  • @frequency_recurrence_factor - 동기화 사이에 발생하는 frequency-type 단위 수입니다.@frequency_recurrence_factor - the number of frequency-type units that occur between synchronizations.

  • @frequency_subday - 에이전트가 하루에 두 번 이상 실행할 경우 빈도 단위입니다.@frequency_subday - the frequency unit when the agent runs more often than once a day.

  • @frequency_subday_interval - 에이전트가 하루에 두 번 이상 실행할 경우 실행 간의 빈도 단위 수입니다.@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 - 지정된 날짜에서 에이전트가 실행되는 시작 시간@active_start_time_of_day - the earliest time in a given day when an agent run will start.

  • @active_end_time_of_day - 지정된 날짜에서 에이전트가 실행되는 마지막 시간@active_end_time_of_day - the latest time in a given day when an agent run will start.

  • @active_start_date - 에이전트 예약이 처음 적용되는 날짜@active_start_date - the first day that the agent schedule will be in effect.

  • @active_end_date - 에이전트 예약이 마지막으로 적용되는 날짜@active_end_date - the last day that the agent schedule will be in effect.

트랜잭션 게시에 대한 끌어오기 구독의 동기화 일정을 정의하려면To define the synchronization schedule for a pull subscription to a transactional publication

  1. 트랜잭션 게시에 대한 새 끌어오기 구독을 만듭니다.Create a new pull subscription to a transactional publication. 자세한 내용은 Create a Pull Subscription를 참조하세요.For more information, see Create a Pull Subscription.

  2. 구독자에서 sp_addpullsubscription_agent (Transact-SQL)를 실행합니다.At the Subscriber, execute sp_addpullsubscription_agent (Transact-SQL). @publisher, @publisher_db, @publication@job_name@password에 대해 구독자에서 배포 에이전트가 실행되는 MicrosoftMicrosoft Windows 자격 증명을 지정합니다.Specify @publisher, @publisher_db, @publication, and the MicrosoftMicrosoft Windows credentials under which the Distribution Agent at the Subscriber runs for @job_name and @password. 구독을 동기화하는 배포 에이전트 작업 일정을 정의하는 동기화 매개 변수(위에서 자세히 설명)를 지정합니다.Specify the synchronization parameters, detailed above, that define the schedule for the Distribution Agent job that synchronizes the subscription.

트랜잭션 게시에 대한 밀어넣기 구독의 동기화 일정을 정의하려면To define the synchronization schedule for a push subscription to a transactional publication

  1. 트랜잭션 게시에 대한 새 밀어넣기 구독을 만듭니다.Create a new push subscription to a transactional publication. 자세한 내용은 Create a Push Subscription을 참조하세요.For more information, see Create a Push Subscription.

  2. 구독자에서 sp_addpushsubscription_agent(Transact-SQL)를 실행합니다.At the Subscriber, execute sp_addpushsubscription_agent (Transact-SQL). @subscriber, @subscriber_db, @publication@job_name@password에 대해 구독자에서 배포 에이전트가 실행되는 Windows 자격 증명을 지정합니다.Specify @subscriber, @subscriber_db, @publication, and the Windows credentials under which the Distribution Agent at the Subscriber runs for @job_name and @password. 구독을 동기화하는 배포 에이전트 작업 일정을 정의하는 동기화 매개 변수(위에서 자세히 설명)를 지정합니다.Specify the synchronization parameters, detailed above, that define the schedule for the Distribution Agent job that synchronizes the subscription.

병합 게시에 대한 끌어오기 구독의 동기화 일정을 정의하려면To define the synchronization schedule for a pull subscription to a merge publication

  1. 병합 게시에 대한 새 끌어오기 구독을 만듭니다.Create a new pull subscription to a merge publication. 자세한 내용은 Create a Pull Subscription을 참조하세요.For more information, see Create a Pull Subscription.

  2. 구독자에서 sp_addmergepullsubscription_agent를 실행합니다.At the Subscriber, execute sp_addmergepullsubscription_agent. @publisher, @publisher_db, @publication@job_name@password에 대해 구독자에서 병합 에이전트가 실행되는 Windows 자격 증명을 지정합니다.Specify @publisher, @publisher_db, @publication, and the Windows credentials under which the Merge Agent at the Subscriber runs for @job_name and @password. 구독을 동기화하는 병합 에이전트 작업 일정을 정의하는 동기화 매개 변수(위에서 자세히 설명)를 지정합니다.Specify the synchronization parameters, detailed above, that define the schedule for the Merge Agent job that synchronizes the subscription.

병합 게시에 대한 밀어넣기 구독의 동기화 일정을 정의하려면To define the synchronization schedule for a push subscription to a merge publication

  1. 병합 게시에 대한 새 밀어넣기 구독을 만듭니다.Create a new push subscription to a merge publication. 자세한 내용은 Create a Push Subscription을 참조하세요.For more information, see Create a Push Subscription.

  2. 구독자에서 sp_addmergepushsubscription_agent를 실행합니다.At the Subscriber, execute sp_addmergepushsubscription_agent. @subscriber, @subscriber_db, @publication@job_name@password에 대해 구독자에서 병합 에이전트가 실행되는 Windows 자격 증명을 지정합니다.Specify @subscriber, @subscriber_db, @publication, and the Windows credentials under which the Merge Agent at the Subscriber runs for @job_name and @password. 구독을 동기화하는 병합 에이전트 작업 일정을 정의하는 동기화 매개 변수(위에서 자세히 설명)를 지정합니다.Specify the synchronization parameters, detailed above, that define the schedule for the Merge Agent job that synchronizes the subscription.

RMO(복제 관리 개체) 사용 Using Replication Management Objects (RMO)

복제에서는 SQL Server 에이전트를 사용하여 스냅숏 생성이나 구독 동기화와 같이 정기적으로 수행하는 작업의 일정을 지정합니다.Replication uses the SQL Server Agent to schedule jobs for activities that occur periodically, such as snapshot generation and subscription synchronization. RMO(복제 관리 개체)를 사용하여 프로그래밍 방식으로 복제 에이전트 작업의 일정을 지정할 수 있습니다.You can use Replication Management Objects (RMO) programmatically to specify schedules for replication agent jobs.

참고

구독을 만들고 falseCreateSyncAgentByDefault 값을 지정하면(끌어오기 구독에 대한 기본 동작) 에이전트 작업은 생성되지 않으며 일정 속성은 무시됩니다.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 this case, the synchronization schedule must be determined by the application. 자세한 내용은 Create a Pull SubscriptionCreate a Push Subscription를 참조하세요.For more information, see Create a Pull Subscription and Create a Push Subscription.

트랜잭션 게시에 대한 밀어넣기 구독을 만들 때 복제 에이전트 일정을 정의하려면To define a replication agent schedule when you create a push subscription to a transactional publication

  1. 만들려는 구독에 대해 TransSubscription 클래스의 인스턴스를 만듭니다.Create an instance of the TransSubscription class for the subscription you are creating. 자세한 내용은 Create a Push Subscription을 참조하세요.For more information, see Create a Push Subscription.

  2. Create를 호출하기 전에 AgentSchedule 속성의 다음 필드 중 하나 이상을 설정합니다.Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType - 에이전트를 예약할 때 사용하는 빈도 유형(예: 매일 또는 매주)입니다.FrequencyType - the type of frequency (such as daily or weekly) you use when you schedule the agent.

    • FrequencyInterval - 에이전트가 실행하는 요일입니다.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval - 지정된 월에서 에이전트가 월별로 실행되도록 예약된 주입니다.FrequencyRelativeInterval - the week of a given month when the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor - 동기화 사이에 발생하는 frequency-type 단위 수입니다.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay - 에이전트가 하루에 두 번 이상 실행할 경우 빈도 단위입니다.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval - 에이전트가 하루에 두 번 이상 실행할 경우 실행 간의 빈도 단위 수입니다.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime - 지정된 날짜에서 에이전트가 실행되는 시작 시간입니다.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime - 지정된 날짜에서 에이전트가 실행되는 마지막 시간입니다.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate - 에이전트 예약이 처음 적용되는 날짜입니다.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate - 에이전트 예약이 마지막으로 적용되는 날짜입니다.ActiveEndDate - last day that the agent schedule is in effect.

    참고

    이러한 속성 중 하나를 지정하지 않으면 기본값이 설정됩니다.If you do not specify one of these properties, a default value is set.

  3. Create 메서드를 호출하여 구독을 만듭니다.Call the Create method to create the subscription.

트랜잭션 게시에 대한 끌어오기 구독을 만들 때 복제 에이전트 일정을 정의하려면To define a replication agent schedule when you create a pull subscription to a transactional publication

  1. 만들려는 구독에 대해 TransPullSubscription 클래스의 인스턴스를 만듭니다.Create an instance of the TransPullSubscription class for the subscription you are creating. 자세한 내용은 Create a Pull Subscription을 참조하세요.For more information, see Create a Pull Subscription.

  2. Create를 호출하기 전에 AgentSchedule 속성의 다음 필드 중 하나 이상을 설정합니다.Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType - 에이전트를 예약할 때 사용하는 빈도 유형(예: 매일 또는 매주)입니다.FrequencyType - the type of frequency (such as daily or weekly) that you use when you schedule the agent.

    • FrequencyInterval - 에이전트가 실행하는 요일입니다.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval - 지정된 월에서 에이전트가 월별로 실행되도록 예약된 주입니다.FrequencyRelativeInterval - the week of a given month that the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor - 동기화 사이에 발생하는 frequency-type 단위 수입니다.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay - 에이전트가 하루에 두 번 이상 실행할 경우 빈도 단위입니다.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval - 에이전트가 하루에 두 번 이상 실행할 경우 실행 간의 빈도 단위 수입니다.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime - 지정된 날짜에서 에이전트가 실행되는 시작 시간입니다.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime - 지정된 날짜에서 에이전트가 실행되는 마지막 시간입니다.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate - 에이전트 예약이 처음 적용되는 날짜입니다.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate - 에이전트 예약이 마지막으로 적용되는 날짜입니다.ActiveEndDate - last day that the agent schedule is in effect.

    참고

    이러한 속성 중 하나를 지정하지 않으면 기본값이 설정됩니다.If you do not specify one of these properties, a default value is set.

  3. Create 메서드를 호출하여 구독을 만듭니다.Call the Create method to create the subscription.

병합 게시에 대한 끌어오기 구독을 만들 때 복제 에이전트 일정을 정의하려면To define a replication agent schedule when you create a pull subscription to a merge publication

  1. 만들려는 구독에 대해 MergePullSubscription 클래스의 인스턴스를 만듭니다.Create an instance of the MergePullSubscription class for the subscription you are creating. 자세한 내용은 Create a Pull Subscription을 참조하세요.For more information, see Create a Pull Subscription.

  2. Create를 호출하기 전에 AgentSchedule 속성의 다음 필드 중 하나 이상을 설정합니다.Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType - 에이전트를 예약할 때 사용하는 빈도 유형(예: 매일 또는 매주)입니다.FrequencyType - the type of frequency (such as daily or weekly) that you use when you schedule the agent.

    • FrequencyInterval - 에이전트가 실행하는 요일입니다.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval - 지정된 월에서 에이전트가 월별로 실행되도록 예약된 주입니다.FrequencyRelativeInterval - the week of a given month that the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor - 동기화 사이에 발생하는 frequency-type 단위 수입니다.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay - 에이전트가 하루에 두 번 이상 실행할 경우 빈도 단위입니다.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval - 에이전트가 하루에 두 번 이상 실행할 경우 실행 간의 빈도 단위 수입니다.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime - 지정된 날짜에서 에이전트가 실행되는 시작 시간입니다.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime - 지정된 날짜에서 에이전트가 실행되는 마지막 시간입니다.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate - 에이전트 예약이 처음 적용되는 날짜입니다.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate - 에이전트 예약이 마지막으로 적용되는 날짜입니다.ActiveEndDate - last day that the agent schedule is in effect.

    참고

    이러한 속성 중 하나를 지정하지 않으면 기본값이 설정됩니다.If you do not specify one of these properties, a default value is set.

  3. Create 메서드를 호출하여 구독을 만듭니다.Call the Create method to create the subscription.

병합 게시에 대한 밀어넣기 구독을 만들 때 복제 에이전트 일정을 정의하려면To define a replication agent schedule when you create a push subscription to a merge publication

  1. 만들려는 구독에 대해 MergeSubscription 클래스의 인스턴스를 만듭니다.Create an instance of the MergeSubscription class for the subscription you are creating. 자세한 내용은 Create a Push Subscription을 참조하세요.For more information, see Create a Push Subscription.

  2. Create를 호출하기 전에 AgentSchedule 속성의 다음 필드 중 하나 이상을 설정합니다.Before you call Create, set one or more of the following fields of the AgentSchedule property:

    • FrequencyType - 에이전트를 예약할 때 사용하는 빈도 유형(예: 매일 또는 매주)입니다.FrequencyType - the type of frequency (such as daily or weekly) that you use when you schedule the agent.

    • FrequencyInterval - 에이전트가 실행하는 요일입니다.FrequencyInterval - the day of the week that an agent runs.

    • FrequencyRelativeInterval - 지정된 월에서 에이전트가 월별로 실행되도록 예약된 주입니다.FrequencyRelativeInterval - the week of a given month that the agent is scheduled to run monthly.

    • FrequencyRecurrenceFactor - 동기화 사이에 발생하는 frequency-type 단위 수입니다.FrequencyRecurrenceFactor - the number of frequency-type units that occur between synchronizations.

    • FrequencySubDay - 에이전트가 하루에 두 번 이상 실행할 경우 빈도 단위입니다.FrequencySubDay - the frequency unit when the agent runs more often than once a day.

    • FrequencySubDayInterval - 에이전트가 하루에 두 번 이상 실행할 경우 실행 간의 빈도 단위 수입니다.FrequencySubDayInterval - the number of frequency units between runs when the agent runs more often than once a day.

    • ActiveStartTime - 지정된 날짜에서 에이전트가 실행되는 시작 시간입니다.ActiveStartTime - earliest time on a given day that an agent run starts.

    • ActiveEndTime - 지정된 날짜에서 에이전트가 실행되는 마지막 시간입니다.ActiveEndTime - latest time on a given day that an agent run starts.

    • ActiveStartDate - 에이전트 예약이 처음 적용되는 날짜입니다.ActiveStartDate - first day that the agent schedule is in effect.

    • ActiveEndDate - 에이전트 예약이 마지막으로 적용되는 날짜입니다.ActiveEndDate - last day that the agent schedule is in effect.

    참고

    이러한 속성 중 하나를 지정하지 않으면 기본값이 설정됩니다.If you do not specify one of these properties, a default value is set.

  3. Create 메서드를 호출하여 구독을 만듭니다.Call the Create method to create the subscription.

예(RMO) Example (RMO)

이 예에서는 병합 계시에 대한 밀어넣기 구독을 만들고 구독의 동기화 일정을 지정합니다.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.
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

관련 항목:See Also

복제 보안을 위한 최선의 구현 방법 Replication Security Best Practices
게시 구독 Subscribe to Publications
밀어넣기 구독 동기화 Synchronize a Push Subscription
끌어오기 구독 동기화 Synchronize a Pull Subscription
데이터 동기화Synchronize Data