병합 복제에 대한 고려 사항

병합 복제의 경우 다음 사항을 고려해야 합니다.

  • 게시된 테이블에 uniqueidentifier 열 추가

  • timestamp

  • LOB(Large Object) 데이터 형식

  • 게시된 테이블에 데이터 대량 삽입

  • 게시 호환성 수준. 자세한 내용은 복제 토폴로지에 SQL Server의 여러 버전 사용의 "병합 게시에 대한 호환성 수준" 섹션을 참조하십시오.

uniqueidentifier 열 추가

병합 복제는 GUID(Globally Unique Identifier) 열을 사용하여 병합 복제 프로세스 중에 각 행을 식별합니다. 게시된 테이블에 ROWGUIDCOL 속성과 고유 인덱스를 가진 uniqueidentifier 열이 없으면 복제에서 해당 열을 추가합니다. 게시된 테이블을 참조하는 SELECT 및 INSERT 문이 열 목록을 사용하는지 확인합니다. 테이블이 더 이상 게시되지 않고 복제에서 이 열을 추가한 경우 해당 열이 제거됩니다. 이미 있는 경우에는 열이 제거되지 않습니다.

timestamp 열

병합 복제는 timestamp 열을 지원합니다. timestamp 열은 복제되지만 리터럴 timestamp 값은 복제되지 않습니다. 구독자에서 스냅숏을 적용하면 timestamp 값이 다시 생성됩니다. timestamp 값이 구독자에서 다시 생성되기 때문에 아티클 유효성 검사 수행 시 timestamp 열은 제외됩니다.

LOB(Large Object) 데이터 형식

게시된 테이블에 LOB이 있는 경우 sp_addmergearticle (Transact-SQL)@stream_blob_columns 매개 변수에 TRUE 값을 지정하는 것이 좋습니다. TRUE를 지정하지 않으면 게시자에서 전체 LOB을 메모리에 구축해야 하므로 LOB이 매우 크면 게시자의 RAM이 부족해질 수 있습니다.

중요 정보중요

이 메모리 최적화 기능을 사용하면 동기화하는 동안 병합 에이전트의 성능이 저하될 수 있습니다. 이 옵션은 MB 단위의 데이터가 들어 있는 열을 복제할 때만 사용해야 합니다.

text, ntext 및 image 열에 대한 업데이트는 UPDATE 문으로 해당 열을 명시적으로 업데이트한 경우에만 복제됩니다. 업데이트는 트리거가 해당 업데이트 메타데이터를 발생하도록 하여 트랜잭션이 다른 구독자에게 전파되게 합니다. WRITETEXT 및 UPDATETEXT 작업만 사용하면 변경 내용이 다른 사이트로 전파되지 않습니다. 응용 프로그램이 WRITETEXT 및 UPDATETEXT를 사용하여 text 또는 ntext 열을 업데이트하는 경우 WRITETEXT 또는 UPDATETEXT 작업 후 같은 트랜잭션 내에 의미 없는 UPDATE 문을 명시적으로 추가하여 트리거를 발생시키고 변경 내용이 다른 사이트에 전파되게 합니다. 이러한 데이터 형식에 대한 자세한 내용은 ntext, text 및 image(Transact-SQL)를 참조하십시오.

[!참고]

text, ntext 및 image 데이터 형식 대신 각각 varchar(max), nvarchar(max), varbinary(max)를 사용할 것을 권장합니다.

게시된 테이블에 데이터 대량 삽입

병합 복제는 트리거와 시스템 테이블을 사용하여 게시된 테이블에 대한 변경 내용을 추적합니다. bcp 유틸리티나 BULK INSERT 명령을 사용하여 데이터 대량 삽입을 수행하면 기본적으로 트리거가 발생되지 않습니다. 트리거가 발생되지 않으면 삽입이 추적되지 않으며 다른 노드에 전파되지 않습니다. 변경 내용을 추적하려면 대량 삽입을 수행할 때 다음 방법 중 하나를 사용하는 것이 좋습니다.

  • bcp 유틸리티나 BULK INSERT 명령에 FIRE_TRIGGERS 옵션을 사용합니다. 이 옵션을 사용하면 일반적인 삽입 작업에서와 같이 트리거가 발생됩니다. 자세한 내용은 bcp 유틸리티BULK INSERT(Transact-SQL)를 참조하십시오.

  • 대량 삽입을 수행한 후 저장 프로시저 sp_addtabletocontents를 실행합니다. 이 프로시저는 현재 포함되지 않은 원본 테이블의 임의 행에 대한 시스템 테이블에 참조를 삽입합니다. 자세한 내용은 sp_addtabletocontents(Transact-SQL)를 참조하십시오.