다음을 통해 공유


스냅샷 없이 트랜잭션 구독 초기화

적용 대상: SQL Server Azure SQL Managed Instance

기본값으로, 트랜잭션 게시에 대한 구독은 스냅샷을 사용하여 초기화되며, 스냅샷은 스냅샷 에이전트에 의해 생성되고 배포 에이전트가 적용됩니다. 큰 초기 데이터 세트와 관련된 시나리오와 같은 일부 시나리오에서는 다른 방법을 사용하여 구독을 초기화하는 것이 좋습니다. 구독자를 초기화하는 다른 방법은 다음과 같습니다.

  • 백업 세트를 지정합니다. 구독자에서 백업을 복원한 다음 배포 에이전트가 필요한 복제 메타데이터 및 시스템 프로시저를 복사합니다. 백업을 사용하여 초기화하는 것은 구독자에게 데이터를 배달하는 가장 빠른 방법이며, 게시를 백업으로 초기화할 수 있도록 설정된 후에 최근 백업을 사용할 수 있기 때문에 편리합니다.

  • 데이터베이스 연결과 같이 다른 메커니즘을 통해 초기 데이터 세트를 구독자에게 복사합니다. 올바른 데이터와 스키마가 구독자에 있는지 확인하고 배포 에이전트 필요한 메타데이터 및 시스템 프로시저를 복사해야 합니다.

백업(backup)으로 구독 초기화

백업에는 전체 데이터베이스가 포함됩니다. 따라서 각 구독 데이터베이스는 초기화될 때 게시 데이터베이스의 전체 복사본을 포함합니다.

  • 백업에는 게시에 대해 아티클로 지정되지 않은 테이블이 포함됩니다.

  • 테이블에 행 또는 열 필터가 지정되어 있더라도 백업에는 모든 데이터가 포함됩니다.

백업이 복원된 후 원치 않는 개체 또는 데이터를 제거하는 것은 관리자 또는 애플리케이션의 책임입니다. 이후 동기화에서 데이터 변경 내용은 아티클로 지정된 테이블에 적용되고 변경 내용이 지정한 필터링 조건을 충족하는 경우에만 복제됩니다.

참고 항목

백업을 복원할 때 구독자가 자동으로 동기화되도록 하려면 게시자에서 백업이 제공되었는지 확인해야 합니다. 백업의 LSN(로그 시퀀스 번호) 값(동기화를 시작할 지점을 설정하는 데 사용됨)은 게시자에 한정됩니다.

백업(backup)으로 구독을 초기화하려면

백업을 사용하여 구독을 초기화하려면 먼저 게시를 만들 때 이 옵션을 사용하도록 설정한 다음 구독을 만들 때 여러 옵션에 대한 값을 지정해야 합니다. 새 게시 마법사를 통해 또는 프로그래밍 방식으로 게시를 사용하도록 설정할 수 있습니다. 그러나 구독 옵션에 필요한 값은 프로그래밍 방식으로만 지정할 수 있습니다.

참고 항목

스냅샷을 사용하지 않고 구독을 초기화할 경우 게시자에서 SQL Server 서비스를 실행하는 계정에는 배포자의 스냅샷 폴더에 대한 쓰기 권한이 있어야 합니다. 사용 권한에 대한 자세한 내용은 Replication Agent Security Model을 참조하십시오.

백업(backup)의 적합성 보장

백업이 수행된 후 발생하는 모든 트랜잭션이 배포자에 저장되는 경우 백업은 구독자를 초기화하는 데 적합합니다. 백업이 적합하지 않으면 복제에 오류 메시지가 표시됩니다.

백업이 사용하기에 적합한지 확인하려면 다음 지침을 따릅니다.

  • 사용 가능한 최신 백업을 사용하고, 최신 백업이 최대 배포 보존 기간보다 오래된 경우 백업을 사용하여 구독을 초기화하기 전에 새 백업을 만듭니다. 더 자세한 내용은 Subscription Expiration and Deactivation를 참조하십시오.

  • 기본값으로 배포 정리 작업은 배포 데이터베이스에서 72시간 이전의 트랜잭션을 지웁니다. 정리는 게시물에 설정된 보존 기간을 기반으로 합니다. 오래된 백업으로 동기화할 때는 복원할 백업 전에 해당 작업을 임시로 비활성화한 다음 구독이 성공적으로 생성된 후 다시 활성화하십시오. 이렇게 하면 백업을 통해 성공적으로 동기화되어야 하는 배포 데이터베이스에서 트랜잭션이 제거되지 않습니다. 정리 작업 실행에 대한 자세한 내용은 복제 유지 관리 작업 실행(SQL Server Management Studio)을 참조하세요.

경우에 따라 백업으로 초기화된 구독을 설정한 후에 복원된 구독자 데이터베이스에서 사용자 지정 작업을 수동으로 수행해야 합니다. 일반적으로 구독자 데이터베이스 내용이 게시자 데이터베이스 내용과 달라지도록 게시가 정의된 경우 복원된 구독자 데이터베이스에서 수동으로 수정 작업을 수행해야 합니다.

  • 복원된 데이터베이스의 인덱싱된 뷰는 로그 기반 인덱싱된 뷰-테이블 문서로 게시된 경우 테이블로 변환해야 합니다

  • 복원된 데이터베이스에서 구독한 타임스탬프 열은 이진(8) 열로 변환되어야 합니다. 타임스탬프 열이 포함된 테이블의 내용을 타임스탬프 열 대신 이진(8) 열을 갖는 경우를 제외하고 스키마가 일치하는 새 테이블에 복사하고, 원래 테이블을 삭제하고, 원래 테이블과 이름이 같은 새 테이블의 이름을 바꿉니다.

대체 메서드를 사용하여 구독 초기화

게시 데이터베이스 스키마 및 데이터를 통합 서비스와 같은 구독자에 복사할 수 있는 모든 메서드를 사용하여 구독을 초기화할 수 있습니다. 대체 방법을 사용하여 구독자를 초기화하면 복제 지원 개체가 구독자에 복사됩니다.

백업을 사용하여 초기화하는 것과 달리 사용자 또는 애플리케이션은 구독을 추가할 때 데이터와 스키마가 제대로 동기화되었는지 확인해야 합니다. 예를 들어 게시자에서 데이터와 스키마가 구독자에 복사되는 시간과 구독이 추가된 시간 사이에 활동이 있는 경우 이 활동으로 인한 변경 내용이 구독자에 복제되지 않을 수 있습니다.

대체 방법으로 구독을 초기화하려면 Initialize a Subscription Manually를 참조하십시오.