수동으로 구독 초기화

적용 대상:SQL ServerAzure SQL Managed Instance

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

시작하기 전에

제한 사항

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

SQL Server Management Studio 사용

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

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

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

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

  2. 새 구독 마법사의 구독 초기화 페이지에서 검사 초기화 상자를 선택 취소합니다. 복제본(replica)tion 개체 및 메타데이터만 복사해야 하는 각 구독에 대해 이 작업을 수행합니다.

Transact-SQL 사용

구독은 복제본(replica)tion 저장 프로시저를 사용하여 수동으로 초기화할 수 있습니다.

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

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

  2. 게시 데이터베이스의 게시자에서 sp_addsubscription 실행합니다. @publication, @subscriber, @destination_db 게시된 데이터가 포함된 구독자의 데이터베이스 이름, @subscription_type 끌어오기및 @sync_type 대한복제본(replica)tion 지원 값을 지정합니다. 자세한 내용은 끌어오기 구독 만들기를 참조 하세요.

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

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

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

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

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

  2. 게시 데이터베이스의 게시자에서 sp_addsubscription 실행합니다. @destination_db 게시된 데이터가 포함된 구독자의 데이터베이스 이름, @subscription_type 푸시 및 @sync_type 대한 복제본(replica)tion 지원 값을 지정합니다. 구독 업데이트는 트랜잭션 게시에 업데이트할 수 있는 구독 만들기를 참조하세요.

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

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

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

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

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

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

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

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

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

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

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

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

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

참고 항목

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