병합 구독이 만료되면 변경 내용을 업로드해야 함
병합 게시에 대한 구독이 만료될 경우 구독자에서 게시자로 변경 내용을 수동으로 업로드해야 합니다.
설명
병합 복제에서는 게시 보존 기간(sp_addmergepublication(Transact-SQL)의 @retention 및 @retention_period_unit 매개 변수)을 사용하여 구독이 만료되는 시기를 결정합니다. 보존 기간에 도달한 후 복제 작업을 통해 게시 및 구독 데이터베이스의 메타데이터를 정리합니다. 자세한 내용은 구독 만료 및 비활성화를 참조하십시오. 구독자의 해당 행과 관련된 메타데이터가 게시자에 없으므로 만료된 구독에서 변경 내용을 업로드할 수 없습니다.
사용자 동작
변경 내용을 게시자에 업로드하려면
tablediff 유틸리티를 사용하여 게시자와 구독자 간에 일치하지 않는 행을 확인합니다. 복제된 테이블에서 이 유틸리티를 사용하는 방법은 방법: 복제된 테이블의 차이점 비교(복제 프로그래밍)를 참조하십시오.
구독자에서 수동으로 또는 다음 방법 중 하나를 사용하여 변경 내용을 업로드합니다.
스냅숏이 구독자에 적용되지 않도록 구독을 다시 만듭니다. 자세한 내용은 스냅숏 없이 병합 구독 초기화를 참조하십시오. 구독이 생성된 후 게시자에 업로드될 각 행에 대해 더미 업데이트를 수행합니다. 다음과 같이 각각 더미 업데이트를 수동으로 수행합니다.
UPDATE Sales.SalesOrderHeader SET RevisionNumber = RevisionNumber WHERE SalesOrderID > 4100
또는 각 행에 대해 sp_mergedummyupdate를 수행합니다. 자세한 내용은 sp_mergedummyupdate(Transact-SQL)를 참조하십시오.
tablediff 유틸리티로 Transact-SQL 스크립트를 생성하여 데이터의 일치성을 유지합니다. 자세한 내용은 tablediff 유틸리티를 참조하십시오. Transact-SQL 스크립트는 대상(이 경우 게시자)에서 일치하지 않는 모든 데이터를 덮어쓰기 때문에 이 옵션은 구독자에서 데이터를 업로드하는 것이 게시자에서 데이터를 보존하는 것보다 우선 순위가 높은 경우에만 사용해야 합니다.