1

SQL Server 2005에서 트랜잭션 복제를 설정하고 복제를 설정할 때 생성 된 DDL 트리거를 사용하지 않도록 설정했습니다. 게시자의 열을 VARCHAR (구독자의 경우 INT)으로 변경했기 때문에 (무슨 일이 일어날 지 이해하기 위해) 약간의 재생 후 거래가 중단되었습니다. 나는SQL Server 2005에서 손상된 트랜잭션 복제 수정

id time     [...] error_code error_text            xact_seqno 
24 2012-02-23 08:33:35.313 [...] 8114  Fehler beim Konvertieren des varchar-Datentyps in int. 0x00139791000CC79C000600000000 
24 2012-02-23 08:33:35.310 [...] 8114  Fehler beim Konvertieren des varchar-Datentyps in int. 0x00139791000CC79C000600000000 
[...] 

및 I (VARCHARINT에 변환에 실패) 내게 오류를 볼 수있는 결과 집합을 제공,이 버그가 거래

EXEC sp_helpsubscriptionerrors 
    @publisher='DB1',@publisher_db='repl_test',@publication='repl_test_table', 
    @subscriber='DB2',@subscriber_db='repl_test' 

을 건너 뛸 수 있도록 두 가지 방법을 발견했습니다 다음 단계

EXEC sp_setsubscriptionxactseqno 
    @publisher='DB1',@publisher_db='repl_test',@publication='repl_test_table', 
    @xact_seqno=0x00139791000CC79C000600000000 

WH에서 다음 절차를 실행하는 결과 (0x00139791000CC79C000600000000)로부터 xact_seqno를 사용 ich는 말할 것이다 :

오류 20017 - 구독자에 구독이 존재하지 않습니다.

허?

답변

2

아아,이 절차가 구독 데이터베이스에 을 실행하는 (그리고 sp_helpsubscriptionerrors 실행되어야한다 distribution 데이터베이스에서) ...하지만이 잘못되고 있음을 볼 수 있습니다 sp_setsubscriptionxactseqno 하나의 internal code을 봄 MSDN에 문서화되어 있지 않습니다.

0

가입자 작업에서 sp_setsubscriptionxactseqno를 실행 했습니까?

배포 에이전트 매개 변수 -SkipErrors 8114을 사용하여이 오류 유형을 일시적으로 건너 뛸 수도 있습니다.

Skipping Errors in Transactional Replication