수동 구독 초기화Initialize a Subscription Manually

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 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. 구독을 초기화하는 데는 일반적으로 초기 스냅숏이 사용되지만 스키마 및 초기 데이터가 이미 구독자에 있는 경우에는 스냅숏을 사용하지 않고 게시에 대한 구독을 초기화할 수 있습니다.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.

시작하기 전에 Before You Begin

제한 사항 Limitations and Restrictions

  • 데이터와 스키마가 구독자로 복사된 시점과 구독이 수동으로 초기화된 시점 간에 트랜잭션 복제를 사용하여 게시된 데이터베이스에서 작업이 수행된 경우에는 이러한 작업으로 인한 변경 내용은 구독자로 복제되지 않을 수 있습니다.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.

SQL Server Management Studio 사용 Using SQL Server Management Studio

스키마를 구독 데이터베이스에 복사(일반적으로 데이터도 복사)하여 게시에 대한 구독을 초기화합니다.Initialize a subscription to a publication manually by copying the schema (and typically data) to the subscription database. 해당 스키마와 데이터는 게시 데이터베이스와 일치해야 합니다.The schema and data should match the publication database. 그런 다음 새 구독 마법사의 구독 초기화 페이지에서 구독에 스키마와 데이터가 필요하지 않도록 지정합니다.Then specify that the subscription does not require schema and data on the Initialize Subscriptions page of the New Subscription Wizard. 이 마법사의 액세스 방법은 Initialize a Transactional Subscription Without a SnapshotCreate a Pull Subscription에서 수동으로 구독을 초기화하는 방법에 대해 설명합니다.For more information about accessing this wizard, see Initialize a Transactional Subscription Without a Snapshot and Create a Pull Subscription.

처음 구독을 동기화하는 경우 복제에 필요한 개체와 메타데이터가 구독 데이터베이스에 복사됩니다.When you synchronize the subscription for the first time, the objects and metadata required by replication are copied to the subscription database.

수동으로 게시에 대한 구독을 초기화하려면To initialize a subscription to a publication manually

  1. 스키마와 데이터가 구독 데이터베이스에 복사되었는지 확인합니다.Ensure that the schema and data are copied to the subscription database.

  2. 새 구독 마법사의 구독 초기화 페이지에 있는 초기화 확인란의 선택을 취소합니다.Clear the Initialize check box on the Initialize Subscriptions page of the New Subscription Wizard. 복제 개체와 메타데이터만 복사해야 하는 각 구독에 대해서 이 작업을 수행합니다.Do this for each subscription that requires only replication objects and metadata to be copied.

Transact-SQL 사용 Using Transact-SQL

복제 저장 프로시저를 사용하여 수동으로 게시를 초기화할 수 있습니다.Subscriptions can be initialized manually using replication stored procedures.

트랜잭션 게시에 대한 끌어오기 구독을 수동으로 초기화하려면To manually initialize a pull subscription to a transactional publication

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다.Ensure that the schema and data exist on the subscription database. 자세한 내용은 Initialize a Transactional Subscription Without a Snapshot에서 수동으로 구독을 초기화하는 방법에 대해 설명합니다.For more information, see Initialize a Transactional Subscription Without a Snapshot.

  2. 게시 데이터베이스의 게시자에서 sp_addsubscription을 실행합니다.At the Publisher on the publication database, execute sp_addsubscription. @publication, @subscriber, @destination_db에 게시된 데이터를 포함하고 있는 구독자의 데이터베이스 이름, @subscription_typepull 값, @sync_typereplication support only 값을 지정합니다.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. 자세한 내용은 Create a Pull Subscription를 참조하세요.For more information, see Create a Pull Subscription.

  3. 구독자에서 sp_addpullsubscription을 실행합니다.At the Subscriber, execute sp_addpullsubscription. 구독 업데이트에 대한 내용은 Create an Updatable Subscription to a Transactional Publication를 참조하세요.For updating subscriptions, see Create an Updatable Subscription to a Transactional Publication.

  4. 구독자에서 sp_addpullsubscription_agent를 실행합니다.At the Subscriber, execute sp_addpullsubscription_agent. 자세한 내용은 Create a Pull Subscription을 참조하세요.For more information, see Create a Pull Subscription.

  5. 배포 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다.Start the Distribution Agent to transfer replication objects and download the latest changes from the Publisher. 자세한 내용은 Synchronize a Pull Subscription을 참조하세요.For more information, see Synchronize a Pull Subscription.

트랜잭션 게시에 대한 밀어넣기 구독을 수동으로 초기화하려면To manually initialize a push subscription to a transactional publication

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다.Ensure that the schema and data exist on the subscription database. 자세한 내용은 Initialize a Transactional Subscription Without a Snapshot에서 수동으로 구독을 초기화하는 방법에 대해 설명합니다.For more information, see Initialize a Transactional Subscription Without a Snapshot.

  2. 게시 데이터베이스의 게시자에서 sp_addsubscription을 실행합니다.At the Publisher on the publication database, execute sp_addsubscription. @destination_db에 게시된 데이터를 포함하는 구독자의 데이터베이스 이름, @subscription_typepush 값, @sync_typereplication support only 값을 지정합니다.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. 구독 업데이트에 대한 내용은 Create an Updatable Subscription to a Transactional Publication를 참조하세요.For updating subscriptions, see Create an Updatable Subscription to a Transactional Publication.

  3. 게시 데이터베이스의 게시자에서 sp_addpushsubscription_agent를 실행합니다.At the Publisher on the publication database, execute sp_addpushsubscription_agent. 자세한 내용은 Create a Push Subscription을 참조하세요.For more information, see Create a Push Subscription.

  4. 배포 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다.Start the Distribution Agent to transfer replication objects and download the latest changes from the Publisher. 자세한 내용은 Synchronize a Push Subscription을 참조하세요.For more information, see Synchronize a Push Subscription.

병합 게시에 대한 끌어오기 구독을 수동으로 초기화하려면To manually initialize a pull subscription to a merge publication

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다.Ensure that the schema and data exist on the subscription database. 이 작업은 구독자에서 게시 데이터베이스의 백업을 복원하여 수행할 수 있습니다.This can be done by restoring a backup of the publication database at the Subscriber.

  2. 게시자에서 sp_addmergesubscription을 실행합니다.At the Publisher, execute sp_addmergesubscription. 이때 @publication, @subscriber, @subscriber_db, @subscription_type에 값 pull을 지정합니다.Specify @publication, @subscriber, @subscriber_db, and a value of pull for @subscription_type. 끌어오기 구독이 등록됩니다.This registers the pull subscription.

  3. 게시된 데이터가 포함된 데이터베이스의 게시자에서 sp_addmergepullsubscription을 실행합니다.At the Subscriber on the database containing the published data, execute sp_addmergepullsubscription. @sync_typenone 값을 지정합니다.Specify a value of none for @sync_type.

  4. 구독자에서 sp_addmergepullsubscription_agent를 실행합니다.At the Subscriber, execute sp_addmergepullsubscription_agent. 자세한 내용은 Create a Pull Subscription을 참조하세요.For more information, see Create a Pull Subscription.

  5. 병합 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다.Start the Merge Agent to transfer replication objects and download the latest changes from the Publisher. 자세한 내용은 Synchronize a Pull Subscription을 참조하세요.For more information, see Synchronize a Pull Subscription.

병합 게시에 대한 밀어넣기 구독을 수동으로 초기화하려면To manually initialize a push subscription to a merge publication

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다.Ensure that the schema and data exist on the subscription database. 이 작업은 구독자에서 게시 데이터베이스의 백업을 복원하여 수행할 수 있습니다.This can be done by restoring a backup of the publication database at the Subscriber.

  2. 게시 데이터베이스의 게시자에서 sp_addmergesubscription을 실행합니다.At the Publisher on the publication database, execute sp_addmergesubscription. @subscriber_db에 게시된 데이터를 포함하는 구독자의 데이터베이스 이름, @subscription_typepush 값, @sync_typenone 값을 지정합니다.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. 게시 데이터베이스의 게시자에서 sp_addmergepushsubscription_agent를 실행합니다.At the Publisher on the publication database, execute sp_addmergepushsubscription_agent. 자세한 내용은 Create a Push Subscription을 참조하세요.For more information, see Create a Push Subscription.

  4. 병합 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다.Start the Merge Agent to transfer replication objects and download the latest changes from the Publisher. 자세한 내용은 Synchronize a Push Subscription을 참조하세요.For more information, see Synchronize a Push Subscription.

참고 항목See Also

Initialize a Transactional Subscription Without a Snapshot Initialize a Transactional Subscription Without a Snapshot
복제된 데이터베이스 백업 및 복원 Back Up and Restore Replicated Databases
Replication Security Best Practices Replication Security Best Practices