분할 테이블 및 인덱스 복제
분할을 사용하면 데이터 하위 집합을 빠르고 효율적으로 관리 및 액세스하는 동시에 데이터 컬렉션의 무결성을 유지할 수 있으므로 큰 테이블 또는 인덱스를 보다 편리하게 관리할 수 있습니다. 자세한 내용은 분할된 테이블 및 인덱스를 참조하십시오. 복제는 분할된 테이블 및 인덱스를 처리하는 방법을 지정하는 속성 집합을 제공하여 분할을 지원합니다.
트랜잭션 및 병합 복제에 대한 아티클 속성
다음 표에서는 데이터를 분할하는 데 사용되는 개체를 나열합니다.
개체 |
개체를 만드는 데 사용되는 명령 |
---|---|
분할된 테이블 또는 인덱스 |
CREATE TABLE 또는 CREATE INDEX |
파티션 함수 |
CREATE PARTITION FUNCTION |
파티션 구성표 |
CREATE PARTITION SCHEME |
분할과 관련된 첫 번째 속성 집합은 파티션 개체를 구독자에 복사해야 하는지 여부를 결정하는 아티클 스키마 옵션입니다. 이러한 스키마 옵션은 다음과 같은 방법으로 설정할 수 있습니다.
새 게시 마법사의 아티클 속성 페이지 또는 게시 속성 대화 상자를 사용합니다. 위의 표에 나온 개체를 복사하려면 테이블 파티션 구성표 복사 및 인덱스 파티션 구성표 복사 속성에 true 값을 지정합니다. 아티클 속성 페이지에 액세스하는 방법은 방법: 게시 및 아티클 속성 보기 및 수정(SQL Server Management Studio)을 참조하십시오.
다음 저장 프로시저 중 하나의 schema_option 매개 변수를 사용합니다.
트랜잭션 복제의 경우 sp_addarticle 또는 sp_changearticle
병합 복제의 경우 sp_addmergearticle 또는 sp_changemergearticle
위의 표에 나온 개체를 복사하려면 적절한 스키마 옵션 값을 지정합니다. 스키마 옵션을 지정하는 방법은 방법: 스키마 옵션 지정(복제 Transact-SQL 프로그래밍)을 참조하십시오.
복제는 초기 동기화 중에 개체를 구독자에 복사합니다. 파티션 구성표에서 PRIMARY 파일 그룹 이외의 파일 그룹을 사용하는 경우 초기 동기화 전에 이러한 파일 그룹이 구독자에 있어야 합니다.
구독자를 초기화하면 데이터 변경 사항이 구독자로 전파되고 해당 파티션에 적용됩니다. 그러나 파티션 구성표에 대한 변경은 지원되지 않습니다. 트랜잭션 및 병합 복제는 ALTER INDEX의 ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME 또는 REBUILD WITH PARTITION 명령을 지원하지 않습니다. 병합 복제는 ALTER TABLE의 SWITCH PARTITION 명령을 지원하지 않지만 트랜잭션 복제는 다음 섹션에 설명된 바와 같이 이 명령을 지원합니다.
파티션 전환을 위한 복제 지원
테이블 분할의 주요 이점 중 하나는 파티션 간에 데이터의 하위 집합을 빠르고 효율적으로 이동할 수 있다는 것입니다. 데이터는 SWITCH PARTITION 문을 사용하여 이동합니다. 자세한 내용은 파티션 전환을 사용하여 데이터를 효율적으로 전송을 참조하십시오. 기본적으로 복제를 사용할 수 있도록 테이블을 설정하면 다음과 같은 이유로 SWITCH PARTITION 작업이 차단됩니다.
게시자에는 있지만 구독자에는 없는 테이블 안팎으로 데이터를 이동하면 게시자와 구독자 간에 일관성이 유지되지 않을 수 있습니다. 일반적으로 이 문제는 준비 테이블 안팎으로 데이터를 이동하는 경우 발생합니다.
구독자에 있는 분할된 테이블에 대한 정의가 게시자에 있는 것과 다를 경우 배포 에이전트가 구독자에서 변경 내용을 적용하려고 하면 오류가 발생합니다. 이 문제는 SQL Server 2000에서 분할된 테이블을 지원하지 않기 때문에 SQL Server 2000 구독자에서도 발생합니다.
이러한 잠재적인 문제에도 불구하고 트랜잭션 복제에 파티션 전환을 사용하도록 설정할 수 있습니다. 파티션 전환을 사용하도록 설정하기 전에 게시자와 구독자에서 파티션 전환과 관련된 모든 테이블이 있는지 확인하고 테이블과 파티션 정의가 동일한지 확인합니다.
파티션 전환 설정
다음과 같은 트랜잭션 게시 속성을 사용하면 사용자가 복제된 환경에서 파티션 전환의 동작을 제어할 수 있습니다.
@allow_partition_switch. true로 설정하면 게시 데이터베이스에 대해 SWITCH PARTITION을 실행할 수 있습니다.
@replicate_partition_switch. SWITCH PARTITION DDL 문을 구독자에 복제해야 하는지 여부를 결정합니다. 이 옵션은 @allow_partition_switch가 true로 설정된 경우에만 유효합니다.
이러한 속성은 게시를 만들 때 sp_addpublication을 사용하거나 게시를 만든 후 sp_changepublication을 사용하여 설정할 수 있습니다. 위에서 설명한 것처럼 병합 복제는 파티션 전환을 지원하지 않습니다. 병합 복제를 사용할 수 있도록 설정된 테이블에서 SWITCH PARTITION을 실행하려면 게시에서 해당 테이블을 제거합니다.