다음을 통해 공유


분할된 테이블 및 인덱스 복제

분할을 사용하면 데이터의 하위 집합을 빠르고 효율적으로 관리하고 액세스하고 동시에 데이터 컬렉션의 무결성을 유지할 수 있으므로 큰 테이블 또는 인덱스를 보다 쉽게 관리할 수 있습니다. 자세한 내용은 Partitioned Tables and Indexes을 참조하세요. 복제는 분할된 테이블 및 인덱스를 처리하는 방법을 지정하는 속성 집합을 제공하여 분할을 지원합니다.

트랜잭션 및 병합 복제에 대한 아티클 속성

다음 표에서는 데이터를 분할하는 데 사용되는 개체를 나열합니다.

객체 를 사용하여 생성됨
분할된 테이블 또는 인덱스 CREATE TABLE 또는 CREATE INDEX
Partition 함수 CREATE PARTITION 함수
파티션 구성표 파티션 구성표 만들기

분할과 관련된 속성의 첫 번째 집합은 분할 개체를 구독자에 복사해야 하는지 여부를 결정하는 아티클 스키마 옵션입니다. 이러한 스키마 옵션은 다음과 같은 방법으로 설정할 수 있습니다.

  • 새 게시 마법사 또는 게시 속성 대화 상자의 아티클 속성 페이지에서 이전 표에 나열된 개체를 복사하려면 테이블 분할 구성표 복사인덱스 분할 스키마 복사 속성의 true 값을 지정합니다. 아티클 속성 페이지에 액세스하는 방법에 대한 자세한 내용은 게시 속성 보기 및 수정을 참조하세요.

  • 다음 저장 프로시저 중 하나의 schema_option 매개 변수를 사용합니다.

    이전 표에 나열된 개체를 복사하려면 적절한 스키마 옵션 값을 지정합니다. 스키마 옵션을 지정하는 방법에 대한 자세한 내용은 스키마 옵션 지정을 참조하세요.

복제는 초기 동기화 시 구독자에게 개체를 복사합니다. 파티션 구성표에서 PRIMARY 파일 그룹 이외의 파일 그룹을 사용하는 경우 초기 동기화 전에 해당 파일 그룹이 구독자에 있어야 합니다.

구독자가 초기화되면 데이터 변경 내용이 구독자에 전파되고 적절한 파티션에 적용됩니다. 그러나 파티션 구성표 변경은 지원되지 않습니다. 트랜잭션 및 병합 복제는 ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME 또는 ALTER INDEX의 REBUILD WITH PARTITION 문 명령을 복제하는 것을 지원하지 않습니다. 연결된 변경 내용은 구독자에 자동으로 복제되지 않습니다. 구독자에서 수동으로 유사한 변경을 하는 것은 사용자의 책임입니다.

파티션 전환에 대한 복제 지원

테이블 분할의 주요 이점 중 하나는 파티션 간에 데이터의 하위 집합을 빠르고 효율적으로 이동할 수 있다는 것입니다. 데이터는 SWITCH PARTITION 명령을 사용하여 이동됩니다. 기본적으로 테이블을 복제에 사용하도록 설정하면 다음과 같은 이유로 SWITCH PARTITION 작업이 차단됩니다.

  • 데이터가 게시자에 있지만 구독자에 없는 테이블로 이동되거나 외부로 이동되면 게시자와 구독자가 서로 일치하지 않을 수 있습니다. 이 문제는 일반적으로 데이터가 준비 테이블로 이동하거나 스테이징 테이블 밖으로 이동할 때 발생합니다.

  • 구독자가 분할된 테이블에 대한 정의가 게시자와 다른 경우 구독자에서 변경 내용을 적용하려고 하면 배포 에이전트가 실패합니다.

이러한 잠재적인 문제에도 불구하고 트랜잭션 복제에 파티션 전환을 사용하도록 설정할 수 있습니다. 파티션 전환을 사용하도록 설정하기 전에 파티션 전환에 관련된 모든 테이블이 게시자 및 구독자에 있는지 확인하고 테이블과 파티션 정의가 동일한지 확인합니다.

게시자와 구독자의 파티션이 정확히 동일한 파티션 구성을 가질 경우, allow_partition_switchreplication_partition_switch를 켜서 구독자에게만 파티션 스위치 문을 복제할 수 있습니다. allow_partition_switch를 DDL을 복제하지 않고도 켤 수 있습니다. 이는 이전 월을 파티션에서 롤아웃하고 구독자에서 백업을 위해 복제된 파티션을 1년 동안 유지하려는 경우에 유용합니다.

현재 버전을 통해 SQL Server 2008 R2에서 파티션 전환을 사용하도록 설정하는 경우 가까운 장래에 분할 및 병합 작업이 필요할 수도 있습니다. 복제된 테이블에서 분할 또는 병합 작업을 실행하기 전에 해당 파티션에 보류 중인 복제 명령이 없는지 확인합니다. 또한 분할 및 병합 작업 중에 파티션에서 DML 작업이 실행되지 않도록 해야 합니다. 로그 판독기에서 처리되지 않은 트랜잭션이 있거나 분할 또는 병합 작업이 실행되는 동안 복제된 테이블의 파티션에서 DML 작업이 수행되는 경우(동일한 파티션 포함) 로그 판독기 에이전트의 처리 오류가 발생할 수 있습니다. 오류를 수정하려면 구독을 다시 초기화해야 할 수 있습니다.

경고

충돌을 감지하고 해결하는 데 사용되는 숨겨진 열로 인해 피어 투 피어 게시에 파티션 전환을 사용하도록 설정해서는 안 됩니다.

파티션 전환 활성화

트랜잭션 게시에 대한 다음 속성을 사용하면 사용자가 복제된 환경에서 파티션 전환 동작을 제어할 수 있습니다.

  • @allow_partition_switch이 설정되면 게시 데이터베이스에 대해 SWITCH PARTITION을 실행할 수 있습니다.

  • @replicate_partition_switch SWITCH PARTITION DDL 문을 구독자에 복제해야 하는지 여부를 결정합니다. 이 옵션은 @allow_partition_switch 설정된 경우에만 유효합니다 true.

게시를 만들 때 sp_addpublication 사용하거나 게시를 만든 후 sp_changepublication 사용하여 이러한 속성을 설정할 수 있습니다. 앞에서 설명한 것처럼 병합 복제는 파티션 전환을 지원하지 않습니다. 병합 복제를 사용하도록 설정된 테이블에서 SWITCH PARTITION을 실행하려면 게시에서 테이블을 제거합니다.

또한 참조하십시오

데이터 및 데이터베이스 개체 게시