증상
Microsoft SQL Server 2012 또는 SQL Server 2012 서비스 팩 1(sp1)에서 게시자가 실행 중인 병합 복제를 사용 한다고 가정 합니다. SQL Server 2012 서비스 팩 2 (SP2)로 게시자를 업그레이드 한 후에는 병합 에이전트를 다시 시작할 수 없습니다. 또한 다음과 같은 오류가 나타납니다.
병합 프로세스에서 ' MergePub ' 데이터베이스의 보존 기반 메타 데이터 정리를 수행할 수 없습니다. 이 오류가 계속 되 면이 프로세스에 대 한 쿼리 제한 시간을 늘리거나 보존 기간을 줄여 보세요. 문제를 해결 하려면 자세한 기록 로깅으로 동기화를 다시 시작 하 고 기록할 출력 파일을 지정 합니다.
게시자에서 sp_mergemetadataretentioncleanup 저장 프로시저를 수동으로 실행 하면 저장 프로시저가 실패 하 고 다음 오류가 표시 됩니다.
메시지 206, 수준 16, 상태 2, 프로시저 sp_mergemetadataretentioncleanup, 줄 6 3 피연산자 형식 충돌: bigint는 uniqueidentifierMsg 206, 수준 16, 상태 2, 프로시저 sp_mergemetadataretentioncleanup, 줄 65Operand 형식 충돌: int는 uniqueidentifier와 호환 되지 않습니다.
해결 방법
이 문제는 다음 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
SQL Server 2012 SP2에 대 한 누적 업데이트 3 /en-us/help/3002049
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
해결 방법
이 문제를 해결 하려면 게시 된 데이터베이스에서 다음 쿼리를 실행 합니다.if exists (select * from sys.columns sc inner join sys.types st on sc.system_type_id = st.system_type_id where object_id = object_id('dbo.sysmergesubscriptions') and sc.name = 'last_local_recgen' and st.name = 'uniqueidentifier') begin alter table dbo.sysmergesubscriptions drop column last_local_recgen alter table dbo.sysmergesubscriptions add last_local_recgen bigint null end
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.