분할 테이블 및 인덱스 복제Replicate Partitioned Tables and Indexes

분할을 사용하면 데이터 하위 집합을 빠르고 효율적으로 관리 및 액세스하는 동시에 데이터 컬렉션의 무결성을 유지할 수 있으므로 큰 테이블 또는 인덱스를 보다 편리하게 관리할 수 있습니다.Partitioning makes large tables or indexes more manageable because partitioning enables you to manage and access subsets of data quickly and efficiently, and maintain the integrity of a data collection at the same time. 자세한 내용은 Partitioned Tables and Indexes을 참조하세요.For more information, see Partitioned Tables and Indexes. 복제는 분할된 테이블 및 인덱스를 처리하는 방법을 지정하는 속성 집합을 제공하여 분할을 지원합니다.Replication supports partitioning by providing a set of properties that specify how partitioned tables and indexes should be treated.

트랜잭션 및 병합 복제에 대한 아티클 속성Article Properties for Transactional and Merge Replication

다음 표에서는 데이터를 분할하는 데 사용되는 개체를 나열합니다.The following table lists the objects that are used to partition data.

개체Object 개체를 만드는 데 사용되는 명령Created by using
분할된 테이블 또는 인덱스Partitioned table or index CREATE TABLE 또는 CREATE INDEXCREATE TABLE or CREATE INDEX
파티션 함수Partition function CREATE PARTITION FUNCTIONCREATE PARTITION FUNCTION
파티션 구성표Partition scheme CREATE PARTITION SCHEMECREATE PARTITION SCHEME

분할과 관련된 첫 번째 속성 집합은 파티션 개체를 구독자에 복사해야 하는지 여부를 결정하는 아티클 스키마 옵션입니다.The first set of properties related to partitioning are the article schema options that determine whether partitioning objects should be copied to the Subscriber. 이러한 스키마 옵션은 다음과 같은 방법으로 설정할 수 있습니다.These schema options can be set in the following ways:

  • 새 게시 마법사의 아티클 속성 페이지 또는 게시 속성 대화 상자를 사용합니다.In the Article Properties page of the New Publication Wizard or the Publication Properties dialog box. 위의 표에 나온 개체를 복사하려면 테이블 파티션 구성표 복사인덱스 파티션 구성표 복사 속성에 true값을 지정합니다.To copy the objects listed in the previous table, specify a value of true for the properties Copy table partitioning schemes and Copy index partitioning schemes. 아티클 속성 페이지에 액세스하는 방법은 게시 속성 보기 및 수정을 참조하세요.For information about how to access the Article Properties page, see View and Modify Publication Properties.

  • 다음 저장 프로시저 중 하나의 schema_option 매개 변수를 사용합니다.By using the schema_option parameter of one of the following stored procedures:

    복제는 초기 동기화 중에 개체를 구독자에 복사합니다.Replication copies objects to the Subscriber during the initial synchronization. 파티션 구성표에서 PRIMARY 파일 그룹 이외의 파일 그룹을 사용하는 경우 초기 동기화 전에 이러한 파일 그룹이 구독자에 있어야 합니다.If the partition scheme uses filegroups other than the PRIMARY filegroup, those filegroups must exist on the Subscriber before the initial synchronization.

    구독자를 초기화하면 데이터 변경 사항이 구독자로 전파되고 해당 파티션에 적용됩니다.After the Subscriber is initialized, data changes are propagated to the Subscriber and applied to the appropriate partitions. 그러나 파티션 구성표에 대한 변경은 지원되지 않습니다.However, changes to the partition scheme are not supported. 트랜잭션 및 병합 복제는 다음 명령의 복제를 지원하지 않습니다. ALTER INDEX의 ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME 또는 REBUILD WITH PARTITION 문을 지원하지 않습니다.Transactional and merge replication do not support replicating the following commands: ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME, or the REBUILD WITH PARTITION statement of ALTER INDEX. 연결된 변경 내용은 구독자에게 자동으로 복제되지 않습니다.The changes associated with them will not be automatically replicated to the Subscriber. 구독자에서 수동으로 비슷한 변경을 하려면 사용자에게 책임이 있습니다.It is the responsibility of the user to make similar changes manually at the Subscriber.

파티션 전환을 위한 복제 지원Replication Support for Partition Switching

테이블 분할의 주요 이점 중 하나는 파티션 간에 데이터의 하위 집합을 빠르고 효율적으로 이동할 수 있다는 것입니다.One of the key benefits of table partitioning is the ability to quickly and efficiently move subsets of data between partitions. 데이터는 SWITCH PARTITION 문을 사용하여 이동합니다.Data is moved by using the SWITCH PARTITION command. 기본적으로 복제를 사용할 수 있도록 테이블을 설정하면 다음과 같은 이유로 SWITCH PARTITION 작업이 차단됩니다.By default, when a table is enabled for replication, SWITCH PARTITION operations are blocked for the following reasons:

  • 게시자에는 있지만 구독자에는 없는 테이블 안팎으로 데이터를 이동하면 게시자와 구독자 간에 일관성이 유지되지 않을 수 있습니다.If data is moved into or out of a table that exists at the Publisher but does not exist at the Subscriber, the Publisher and Subscriber could become inconsistent with one another. 일반적으로 이 문제는 준비 테이블 안팎으로 데이터를 이동하는 경우 발생합니다.This problem typically occurs when data is moved into or out of a staging table.

  • 구독자에 있는 분할된 테이블에 대한 정의가 게시자에 있는 것과 다를 경우 배포 에이전트가 구독자에서 변경 내용을 적용하려고 하면 오류가 발생합니다.If the Subscriber has a different definition for the partitioned table than the Publisher, the Distribution Agent will fail when it tries to apply changes at the Subscriber.

    이러한 잠재적인 문제에도 불구하고 트랜잭션 복제에 파티션 전환을 사용하도록 설정할 수 있습니다.Despite these potential issues, partition switching can be enabled for transactional replication. 파티션 전환을 사용하도록 설정하기 전에 게시자와 구독자에서 파티션 전환과 관련된 모든 테이블이 있는지 확인하고 테이블과 파티션 정의가 동일한지 확인합니다.Before you enable partition switching, make sure that all tables that are involved in partition switching exist at the Publisher and Subscriber, and make sure that the table and partition definitions are the same.

    파티션이 게시자 및 구독자에서 정확히 동일한 파티션 스키마를 포함하는 경우 allow_partition_switch 와 함께 replication_partition_switch 를 설정하여 파티션 전환 문만 구독자에 복제할 수 있습니다.When partitions have the exact same partition scheme at the publishers and subscribers you can turn on allow_partition_switch along with replication_partition_switch which will only replicate the partition switch statement to the subscriber. 또한 DDL을 복제하지 않고 allow_partition_switch 를 설정할 수도 있습니다.You can also turn on allow_partition_switch without replicating the DDL. 이 기능은 파티션 중 오래된 개월을 롤링하지만 복제된 파티션을 구독자에서 백업 목적으로 다른 연도에도 유지하려는 경우에 유용합니다.This is useful in the case where you want to roll old months out of the partition but keep the replicated partition in place for another year for backup purposes at the subscriber.

    SQL Server 2008 R2 ~ 현재 버전에서 파티션 전환을 사용하도록 설정하는 경우 머지않아 분할 및 병합 작업이 필요할 수도 있습니다.If you enable partition switching on SQL Server 2008 R2 through the current version, you might also need split and merge operations in near future. 복제된 테이블에서 분할 또는 병합 작업을 실행하려면 먼저 문제의 파티션에 보류 중인 복제된 명령이 없는지 확인해야 합니다.Before executing a split or merge operation on a replicated table ensure that the partition in question does not have any pending replicated commands. 또한 분할 및 병합 작업 중에는 파티션에서 DML 작업이 실행되고 있지 않아야 합니다.You should also ensure that no DML operations are executed on the partition during the split and merge operations. 로그 판독기에서 처리하지 않은 트랜잭션이 있거나 복제된 표의 파티션에서 동일한 파티션과 관련된 분할 또는 병합 작업이 실행되는 동안 DML 작업이 수행되는 경우 로그 판독기 에이전트에서 처리 오류가 발생할 수 있습니다.If there are transactions which the log reader has not processed, or if DML operations are performed on a partition of a replicated table while a split or merge operation is executed (involving the same partition), it could lead to a processing error with log reader agent. 오류를 수정하기 위해 구독을 다시 초기화해야 할 수 있습니다.In order to correct the error, it might require a re-initialization of the subscription.

경고

충돌을 감지하고 해결하는 데 사용되는 숨겨진 열로 인해 피어 투 피어 게시에 대해서는 파티션 전환을 사용하지 않아야 합니다.You should not enable partition switching for Peer-to-Peer publications, due to the hidden column which is used to detect and resolve conflict.

파티션 전환 설정Enabling Partition Switching

다음과 같은 트랜잭션 게시 속성을 사용하면 사용자가 복제된 환경에서 파티션 전환의 동작을 제어할 수 있습니다.The following properties for transactional publications enable users to control the behavior of partition switching in a replicated environment:

  • @allow_partition_switch. 테이블 파티션 구성표 복사로 설정하면 게시 데이터베이스에 대해 SWITCH PARTITION을 실행할 수 있습니다.@allow_partition_switch, when set to true, SWITCH PARTITION can be executed against the publication database.

  • @replicate_partition_switch . SWITCH PARTITION DDL 문을 구독자에 복제해야 하는지 여부를 결정합니다.@replicate_partition_switch determines whether the SWITCH PARTITION DDL statement should be replicated to Subscribers. 이 옵션은 @allow_partition_switch테이블 파티션 구성표 복사을 참조하세요.This option is valid only when @allow_partition_switch is set to true.

    이러한 속성은 게시를 만들 때 sp_addpublication 을 사용하거나 게시를 만든 후 sp_changepublication 을 사용하여 설정할 수 있습니다.You can set these properties by using sp_addpublication when the publication is created, or by using sp_changepublication after the publication is created. 위에서 설명한 것처럼 병합 복제는 파티션 전환을 지원하지 않습니다.As noted earlier, merge replication does not support partition switching. 병합 복제를 사용할 수 있도록 설정된 테이블에서 SWITCH PARTITION을 실행하려면 게시에서 해당 테이블을 제거합니다.To execute SWITCH PARTITION on a table that is enabled for merge replication, remove the table from the publication.

참고 항목See Also

데이터 및 데이터베이스 개체 게시Publish Data and Database Objects