최근에 SQL Server 2005를 SQL Server 2008 (R2, SP1)로 업그레이드했습니다. 이 업그레이드에는 모든 게시가 "이후의 승"원칙에 따라 기본 충돌 해결 프로그램으로 게시되는 일부 발행물이 포함되었습니다. 스마트 이름은 'Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver'이며 해당 dll 파일은 ssrmax.dll입니다.SQL Server 2005에서 SQL Server 2008로 업그레이드 할 때 충돌 해결 프로그램을 업데이트하는 방법
모든 테이블에서 충돌 해결 프로그램이 게시되면이 테이블을 사용하는 이후의 모든 게시에서 동일한 충돌 해결 프로그램을 사용해야합니다. 제법 있지만, 새로운 출판물에 이전에 게시 된 테이블을 추가하고, 바로 그 충돌 해결을 지정하는 것은이 표에 사용하는 경우, 우리는 오류 메시지가 점점 :
use [myDb]
exec sp_addmergearticle
@publication = N'myDb_Pub',
@article = N'Tbl_blablabla',
@source_owner = N'dbo',
@source_object = N'Tbl_blablabla',
@type = N'table',
@description = N'',
@creation_script = N'',
@pre_creation_cmd = N'drop',
@schema_option = 0x000000000C034FD1,
@identityrangemanagementoption = N'none',
@destination_owner = N'dbo',
@force_reinit_subscription = 1,
@column_tracking = N'false',
@article_resolver = N'Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver',
@subset_filterclause = N'',
@resolver_info = N'ddmaj',
@vertical_partition = N'false',
@verify_resolver_signature = 0,
@allow_interactive_resolver = N'false',
@fast_multicol_updateproc = N'true',
@check_permissions = 0,
@subscriber_upload_options = 0,
@delete_tracking = N'true',
@compensate_for_errors = N'false',
@stream_blob_columns = N'false',
@partition_options = 0
GO
을 그리고 이것은 우리가 얻을 오류입니다 : 같은 충돌 해결 '이 같은 충돌 해결'과 같은 기계로 간주되지 않습니다 방법을 이해하려고 노력함으로써
The article '...' already exists in another publication with a different article resolver.
, 나는 레지스트리에서 같은 이름, 다른 버전, 두 개의 충돌 해결 프로그램이 있었다 발견 :
th 전자 2005 버전 :
- 파일 ssrmax.dll,
- 버전 2005.90.4035.0,
- cls_id D604B4B5-686B-4304-9613-C4F82B527B10
2008 버전 :
- 파일 ssrmax.dll,
- 버전 2009.100.2500.0,
- 는 77209412-47CF-49AF-A347-DCF7EE481277에게
을 cls_id 그리고 나는 우리의 2008 서버가 '사용 가능한 사용자 지정 해결'(나는 sp_enumcustomresolvers을 실행하여이있어)로 두 번째를 고려하고 있음을 확인. 문제는 두 참조 모두 레지스트리에서 사용할 수 있다는 것입니다. 따라서 이전 발행물은 2005 버전을 참조하고 새로운 출판물은 이전 버전과 실제로 다른 2008 버전을 참조하려고합니다.
그래서 질문은 : 서버에 어떻게이 2 가지 버전 중 하나만 고려해도되고 (물론) 기존 출판물을 삭제하고 다시 만들지 않고 (다음 2 년 동안 우리 삶을 지옥으로 바꿀 필요가 없음) 주).
완료를 추가 할 수 있으며, 작업 clisd에 가입 기사 sysMergeArticles 테이블의 resolver_clsid 필드 업데이트되었습니다. –