다음을 통해 공유


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

게시를 만든 후에는 아티클을 추가하고 삭제할 수 있습니다. 아티클은 언제든지 추가할 수 있지만 아티클을 삭제하는 데 필요한 작업은 복제 유형과 아티클 삭제 시기에 따라 달라집니다.

문서 추가

아티클을 추가하려면 게시에 아티클을 추가합니다. 게시에 대한 새 스냅샷 만들기 새 문서에 대한 스키마 및 데이터를 적용하도록 구독을 동기화합니다.

비고

병합 게시에 아티클을 추가하고 기존 아티클이 새 아티클에 의존하는 경우 sp_addmergearticle 및sp_changemergearticle @processing_order 매개 변수를 사용하여 두 아티클에 대한 처리 순서를 지정해야 합니다. 다음 시나리오를 고려합니다. 테이블을 게시하지만 테이블에서 참조하는 함수는 게시하지 않습니다. 함수를 게시하지 않으면 구독자에서 테이블을 만들 수 없습니다. 게시에 함수를 추가하는 경우: sp_addmergearticle;의 @processing_order 매개 변수에 대해 1값을 지정합니다. sp_changemergearticle @processing_order 매개 변수에 대해2 값을 지정하고 매개 변수 @article 테이블 이름을 지정합니다. 이 처리 순서는 테이블에 의존하는 함수가 구독자에서 먼저 생성되도록 보장합니다. 함수의 숫자가 테이블의 숫자보다 낮으면 각 아티클에 대해 서로 다른 숫자를 사용할 수 있습니다.

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

  2. 게시에 아티클을 추가한 후에는 게시에 대한 새 스냅샷을 만들어야 합니다(매개 변수가 있는 필터가 있는 병합 게시인 경우 모든 파티션). 그런 다음 배포 에이전트 또는 병합 에이전트는 새 아티클의 스키마와 데이터를 구독자에 복사합니다(전체 게시를 다시 초기화하지 않음).

  3. 스냅샷을 만든 후 구독을 동기화하여 새 문서의 스키마와 데이터를 복사합니다.

아티클 삭제

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

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

  • 호환성 수준이 90RTM 이상인 병합 게시의 경우 언제든지 아티클을 삭제할 수 있지만 새 스냅샷이 필요합니다. 또한

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

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

  • 호환성 수준이 90RTM보다 낮은 병합 게시의 경우 구독의 초기 동기화 전에 특별한 고려 사항 없이 아티클을 삭제할 수 있습니다. 하나 이상의 구독이 동기화된 후 아티클이 삭제되면 구독을 삭제하고 다시 만들고 동기화해야 합니다.

  • 스냅샷 또는 트랜잭션 게시의 경우 구독을 만들기 전에 특별한 고려 사항 없이 문서를 삭제할 수 있습니다. 하나 이상의 구독을 만든 후 아티클을 삭제하는 경우 구독을 삭제하고, 다시 만들고, 동기화해야 합니다. 구독 삭제에 대한 자세한 내용은 게시 구독sp_dropsubscription(Transact-SQL)를 참조하세요. sp_dropsubscription 전체 구독이 아닌 구독에서 단일 아티클을 삭제할 수 있습니다.

  1. 출판물에서 아티클을 삭제하려면 아티클을 제거하고 출판물에 대한 새로운 스냅샷을 만드십시오. 아티클을 삭제하면 현재 스냅샷이 무효화됩니다. 따라서 새 스냅샷을 만들어야 합니다.

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

위에서 설명한 것처럼 일부 경우 아티클을 삭제하려면 구독을 삭제하고 다시 만들고 동기화해야 합니다. 자세한 내용은 게시 구독데이터 동기화를 참조하세요.

또한 참조하십시오

데이터 및 데이터베이스 개체 게시
구독 다시 초기화
게시 데이터베이스에서 스키마 변경