메모리 액세스에 최적화된 테이블 구독자로 복제

적용 대상: SQL Server(지원되는 모든 버전) Azure SQL Managed Instance

피어 투 피어 트랜잭션 복제를 제외하고는 스냅샷 및 트랜잭션 복제 구독자 역할을 수행하는 테이블을 메모리 최적화 테이블로 구성할 수 있습니다. 다른 복제 구성은 메모리 최적화 테이블과 호환되지 않습니다. 이 기능은 SQL Server 2016(13.x)부터 사용할 수 있습니다.

필요한 두 가지 구성

메모리 최적화 테이블을 구독자로 구성하려면

  1. 트랜잭션 게시를 만듭니다. 자세한 내용은 게시 만들기를 참조하세요.

  2. 아티클을 게시에 추가합니다. 자세한 내용은 아티클을 정의을 참조하세요.

    Transact-SQL을 사용하여 구성하는 경우 sp_addarticle 저장 프로시저의 @schema_option 매개 변수를
    0x40000000000부터 사용할 수 있습니다.

  3. 아티클 속성 창에서 메모리 최적화 사용true로 설정합니다.

  4. 스냅샷 에이전트 작업을 시작하여 이 게시에 대한 초기 스냅샷을 생성합니다. 자세한 내용은 Create and Apply the Initial Snapshot을 참조하세요.

  5. 이제 새 구독을 만듭니다. 새 구독 마법사 에서 메모리 액세스에 최적화된 구독true로 설정합니다.

메모리 액세스에 최적화된 테이블이 이제 게시자로부터 업데이트 수신을 시작합니다.

기존 트랜잭션 복제 다시 구성

  1. Management Studio 에서 구독 속성으로 이동한 다음 메모리 액세스에 최적화된 구독true로 설정합니다. 구독을 다시 초기화해야 변경 내용이 적용됩니다.

    Transact-SQL을 사용하여 구성하는 경우 sp_addsubscription 저장 프로시저의 새 @memory_optimized 매개 변수를 true로 설정합니다.

  2. Management Studio에서 게시에 대한 아티클 속성으로 이동하고 메모리 최적화 사용 설정을 true로 설정합니다.

    Transact-SQL을 사용하여 구성하는 경우 sp_addarticle 저장 프로시저의 @schema_option 매개 변수를
    0x40000000000부터 사용할 수 있습니다.

  3. 메모리 액세스에 최적화된 테이블은 클러스터형 인덱스를 지원하지 않습니다. 클러스터형 인덱스를 대상에서 비클러스터형 인덱스로 변환하여 복제에서 해당 인덱스를 처리하도록 하려면 메모리 액세스에 최적화된 아티클에 대해 클러스터형 인덱스를 비클러스터형 인덱스로 변환 을 true로 설정합니다.

    Transact-SQL을 사용하여 구성하는 경우 sp_addarticle 저장 프로시저의 @schema_option 매개 변수를 0x0000080000000000 설정합니다.

  4. 스냅샷을 다시 생성합니다.

  5. 구독을 다시 초기화합니다.

주의 및 제한 사항

단방향 트랜잭션 복제만 지원됩니다. 피어 투 피어 트랜잭션 복제는 지원되지 않습니다.

메모리 액세스에 최적화된 테이블은 게시할 수 없습니다.

배포자의 복제 테이블은 메모리 최적화 테이블로 구성할 수 없습니다.

병합 복제는 메모리 최적화 테이블을 포함할 수 없습니다.

구독자에서 트랜잭션 복제와 관련된 테이블은 메모리 최적화 테이블로 구성할 수 있지만 구독자 테이블은 메모리 최적화 테이블의 요구 사항을 충족해야 합니다. 여기에는 다음과 같은 제한 사항이 필요합니다.

스키마 파일 수정

  • 메모리 최적화 테이블 옵션 DURABILITY = SCHEMA_AND_DATA를 사용할 경우 테이블은 비클러스터형 기본 키 인덱스를 포함해야 합니다.

  • ANSI_PADDING은 ON이어야 합니다.