다음을 통해 공유


기존 게시에 대한 아티클 추가 및 삭제

게시가 생성된 후에는 아티클을 추가 및 삭제할 수 있습니다. 아티클 추가 작업은 언제든지 수행할 수 있지만 아티클 삭제에 필요한 동작은 복제 유형과 아티클 삭제 시기에 따라 다릅니다.

아티클 추가

아티클을 추가하려면 아티클을 게시에 추가하고, 게시에 대한 새 스냅숏을 만들고, 구독을 동기화하여 새 아티클에 대한 스키마 및 데이터를 적용해야 합니다.

[!참고]

병합 게시에 아티클을 추가하고 기존 아티클이 새 아티클에 의존할 경우 sp_addmergearticlesp_changemergearticle@processing_order 매개 변수를 사용하여 두 아티클의 처리 순서를 지정해야 합니다. 다음과 같은 시나리오를 고려해 보십시오. 테이블을 게시하지만 테이블이 참조하는 함수는 게시하지 않는 경우가 있습니다. 함수를 게시하지 않을 경우 구독자에서 테이블을 만들 수 없습니다. 게시에 함수를 추가할 경우에는 sp_addmergearticle@processing_order 매개 변수에 값 1을 지정하고 sp_changemergearticle@processing_order 매개 변수에 값 2를 지정하며 @article 매개 변수에는 테이블 이름을 지정합니다. 이 처리 순서를 사용하면 함수에 의존하는 테이블이 생성되기 전에 해당 함수가 구독자에서 생성됩니다. 함수 번호가 테이블 번호보다 낮은 경우 각 아티클에 다른 번호를 사용할 수 있습니다.

  1. 다음 방법 중 하나를 사용하여 하나 이상의 아티클을 추가합니다.

  2. 아티클을 게시에 추가한 후에는 게시에 대한 새 스냅숏을 만들어야 합니다. 매개 변수가 있는 필터가 포함된 병합 게시인 경우에는 파티션도 모두 만들어야 합니다. 그러면 배포 에이전트 또는 병합 에이전트가 새 아티클에 대한 스키마 및 데이터를 구독자로 복사합니다. 이때 전체 게시를 다시 초기화하지는 않습니다.

    새 스냅숏을 만들려면

    매개 변수가 있는 필터를 사용하여 병합 게시에 대한 스냅숏을 새로 만들려면

  3. 스냅숏이 생성된 후에 구독을 동기화하여 새 아티클에 대한 스키마 및 데이터를 복사합니다.

    밀어넣기 구독을 동기화하려면

    끌어오기 구독을 동기화하려면

아티클 삭제

언제든지 아티클을 게시에서 삭제할 수 있지만 다음 동작을 고려해야 합니다.

  • 게시에서 아티클을 삭제해도 해당 개체가 게시 데이터베이스에서 삭제되거나 구독 데이터베이스의 해당 개체가 삭제되지 않습니다. 필요한 경우 DROP <Object>를 사용하여 이러한 개체를 제거합니다. FOREIGN KEY 제약 조건을 통해 다른 게시된 아티클과 관련된 아티클을 삭제하는 경우에는 테이블을 구독자에서 수동으로 삭제하거나 적절한 DROP <Object> 문이 포함된 스크립트를 요청 시 실행하여 테이블을 삭제하는 것이 좋습니다. 자세한 내용은 방법: 동기화 중 스크립트 실행(복제 Transact-SQL 프로그래밍)을 참조하십시오.

  • 호환성 수준이 90RTM 이상인 병합 게시의 경우에는 언제든지 아티클을 삭제할 수 있지만 새 스냅숏이 필요합니다. 또한 다음 작업도 수행해야 합니다.

    • 아티클이 조인 필터 또는 논리적 레코드 관계에서 부모 아티클인 경우에는 해당 관계를 먼저 삭제해야 하므로 재초기화가 필요합니다.

    • 게시에서 아티클에 매개 변수가 있는 마지막 필터가 있는 경우에는 구독을 다시 초기화해야 합니다.

  • 호환성 수준이 90RTM 이하인 병합 게시의 경우에는 구독의 초기 동기화 이전에 특별한 고려 사항 없이 아티클을 삭제할 수 있습니다. 하나 이상의 구독이 동기화된 후에 아티클을 삭제하면 해당 구독을 삭제한 뒤 다시 만들고 동기화해야 합니다. 호환성 수준에 대한 자세한 내용은 복제 토폴로지에 SQL Server의 여러 버전 사용 항목의 "병합 게시에 대한 호환성 수준" 섹션을 참조하십시오.

  • 스냅숏 또는 트랜잭션 게시의 경우에는 구독을 만들기 전에 특별한 고려 사항 없이 아티클을 삭제할 수 있습니다. 하나 이상의 구독이 생성된 후에 아티클을 삭제하면 해당 구독을 삭제한 뒤 다시 만들고 동기화해야 합니다. 구독 삭제 방법은 게시 구독sp_dropsubscription(Transact-SQL)을 참조하십시오. sp_dropsubscription을 사용하면 전체 구독 대신 구독에서 단일 아티클을 삭제할 수 있습니다.

  1. 게시에서 아티클을 삭제하려면 아티클을 삭제하고 게시에 대한 새 스냅숏을 만들어야 합니다. 아티클을 삭제하면 현재 스냅숏이 무효화되므로 새 스냅숏을 만들어야 합니다.

    게시에서 아티클을 삭제하려면

  2. 게시에서 아티클을 삭제한 후에는 게시에 대한 새 스냅숏을 만들어야 합니다. 매개 변수가 있는 필터가 포함된 병합 게시인 경우에는 파티션도 모두 만들어야 합니다.

    새 스냅숏을 만들려면

    매개 변수가 있는 필터를 사용하여 병합 게시에 대한 스냅숏을 새로 만들려면

위에서 언급한 대로 경우에 따라서는 아티클을 삭제하면 구독을 삭제한 뒤 다시 만들고 동기화해야 합니다. 자세한 내용은 게시 구독데이터 동기화를 참조하십시오.