다음을 통해 공유


수동으로 구독을 초기화하기

적용 대상: SQL Server Azure SQL Managed Instance

이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 수동으로 구독을 초기화하는 방법에 대해 설명합니다. 초기 스냅샷은 일반적으로 구독을 초기화하는 데 사용되지만 스키마 및 초기 데이터가 구독자에 이미 있는 경우 스냅샷을 사용하지 않고 게시 구독을 초기화할 수 있습니다.

시작하기 전에

제한 사항

  • 데이터와 스키마가 구독자에 복사되는 시간과 구독이 수동으로 초기화되는 시간 사이에 트랜잭션 복제를 사용하여 게시된 데이터베이스에 작업이 있는 경우 이 활동으로 인한 변경 내용이 구독자에 복제되지 않을 수 있습니다.

SQL Server Management Studio 사용

스키마를 구독 데이터베이스에 복사(일반적으로 데이터도 복사)하여 게시에 대한 구독을 초기화합니다. 스키마와 데이터는 게시 데이터베이스와 일치해야 합니다. 그런 다음 새 구독 마법사의 구독 초기화 페이지에서 구독에 스키마와 데이터가 필요하지 않도록 지정합니다. 이 마법사의 액세스 방법은 스냅샷 없이 트랜잭션 구독 초기화끌어오기 구독 만들기를 참조하세요.

구독을 처음으로 동기화하면 복제에 필요한 개체와 메타데이터가 구독 데이터베이스에 복사됩니다.

게시에 대한 구독을 수동으로 초기화하려면

  1. 스키마와 데이터가 구독 데이터베이스에 복사되었는지 확인합니다.

  2. 새 구독 마법사의 구독 초기화 페이지에서 초기화 확인란의 선택을 취소합니다. 복제 개체 및 메타데이터만 복사해야 하는 각 구독에 대해 이 작업을 수행합니다.

Transact-SQL 사용

복제 저장 프로시저를 사용하여 구독을 수동으로 초기화할 수 있습니다.

트랜잭션 게시에 대한 끌어오기 구독을 수동으로 초기화하려면

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다. 자세한 내용은 스냅샷 없이 트랜잭션 구독 초기화를 참조하세요.

  2. 게시 데이터베이스의 게시자에서 sp_addsubscription을 실행합니다. @publication, @subscriber, @destination_db에 게시된 데이터를 포함하고 있는 구독자의 데이터베이스 이름, @subscription_type에 대한 pull 값, @sync_type에 대한 replication support only 값을 지정합니다. 자세한 내용은 끌어오기 구독 만들기을 참조하세요.

  3. 구독자에서 sp_addpullsubscription을 실행합니다. 구독 업데이트의 경우 트랜잭션 게시에 대해 업데이트할 수 있는 구독 만들기를 참조하세요.

  4. 구독자에서 sp_addpullsubscription_agent을 실행합니다. 자세한 내용은 끌어오기 구독 만들기을 참조하세요.

  5. 배포 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다. 자세한 내용은 끌어오기 구독 동기화를 참조하세요.

트랜잭션 게시에 대한 밀어넣기 구독을 수동으로 초기화하려면

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다. 자세한 내용은 스냅샷 없이 트랜잭션 구독 초기화를 참조하세요.

  2. 게시 데이터베이스의 게시자에서 sp_addsubscription을 실행합니다. @destination_db에 게시된 데이터를 포함하고 있는 구독자의 데이터베이스 이름, @subscription_typepush값, @sync_typereplication support only 값을 지정합니다. 구독 업데이트의 경우 트랜잭션 게시에 대해 업데이트할 수 있는 구독 만들기를 참조하세요.

  3. 게시 데이터베이스의 게시자에서 sp_addpushsubscription_agent를 실행합니다. 자세한 내용은 밀어넣기 구독 만들기을 참조하세요.

  4. 배포 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다. 자세한 내용은 밀어넣기 구독 동기화를 참조하세요.

병합 게시에 대한 끌어오기 구독을 수동으로 초기화하려면

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다. 이 작업은 구독자에서 게시 데이터베이스의 백업을 복원하여 수행할 수 있습니다.

  2. 게시자에서 sp_addmergesubscription을 실행합니다. @publication, @subscriber, @subscriber_db@subscription_type에 대한 pull 값을 지정합니다. 끌어오기 구독을 등록합니다.

  3. 게시 데이터가 포함된 데이터베이스의 구독자에서 sp_addmergepullsubscription을 실행합니다. @sync_typenone 값을 지정합니다.

  4. 구독자에서 sp_addmergepullsubscription_agent을 실행합니다. 자세한 내용은 끌어오기 구독 만들기을 참조하세요.

  5. 병합 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다. 자세한 내용은 끌어오기 구독 동기화를 참조하세요.

병합 게시에 대한 밀어넣기 구독을 수동으로 초기화하려면

  1. 스키마와 데이터가 구독 데이터베이스에 존재하는지 확인합니다. 이 작업은 구독자에서 게시 데이터베이스의 백업을 복원하여 수행할 수 있습니다.

  2. 게시 데이터베이스의 게시자에서 sp_addmergesubscription을 실행합니다. @subscriber_db에 게시된 데이터를 포함하고 있는 구독자의 데이터베이스 이름, @subscription_typepush값, @sync_typenone값을 지정합니다.

  3. 게시 데이터베이스의 게시자에서 sp_addmergepushsubscription_agent를 실행합니다. 자세한 내용은 밀어넣기 구독 만들기을 참조하세요.

  4. 병합 에이전트를 시작하여 복제 개체를 전송하고 게시자에서 최신 변경 내용을 다운로드합니다. 자세한 내용은 밀어넣기 구독 동기화를 참조하세요.

참고 항목

스냅샷 없이 트랜잭션 구독 초기화
복제된 데이터베이스 백업 및 복원
복제 보안을 위한 최선의 구현 방법