2012-06-18 5 views
1

SQL 2005 병합 복제를 사용하는 데이터베이스가 있고 게시자를 직접 방문하지 않은 구독자에 데이터가 삽입되었습니다. 나는 14 일간의 보존 기간 동안 일어난 일이 있다고 생각하며 더 이상 보지 못한다. 수동으로 게시자에 추가 할 수 있습니까? 어떤 아이디어 나 좋은 링크를 이끌어 주시면 감사하겠습니다. 고맙습니다.병합 복제 - 게시자가 구독자의 데이터가 누락되었습니다.

답변

0

답변을 드리기 전에 다음 지시 사항은 매우 위험 할 수 있으므로 최대한주의를 기울여야합니다. 문제의 테이블은 가입자 (1 명)에게만 쓰여지고 그 밖의 다른 곳은 쓰이지 않기 때문에이 솔루션이 저에게 효과적입니다. 기본적으로 제가 한 것이되었다

  1. 일시 정지 복제 (자동 식별
  2. 가 ON으로 테이블에 대한 신원 삽입을 설정합니다 (사실 내가 작업 한 가입자의 복제 작업을 비활성화하고 완료되면 그것을 가능) 완료되면
  3. NOCHECK CONSTRAINT repl_identity_range_ (여기에 몇 가지 진수 값)로 테이블을 변경) 테이블에 사용하는 것은
  4. 장애인은 MSmerge_ins_ (여기에 몇 가지 진수 값 테이블에 대한) 트리거. (확인은 본을 사용하려면) !!!
  5. 삽입 행
  6. 설정 Indentity_Insert는
  7. 떨어져 MSmerge_ins_를 사용 (여기에 몇 가지 진수 값) 트리거
  8. 알터 CHECK CONSTRAINT repl_identity_range_ (여기에 몇 가지 진수 값)에 테이블

sp_help를 실행하여 repl_identity_range 제약 조건의 이름을 찾을 수 있습니다. Red Gates 데이터와 같은 도구를 사용하면 확인을 완료 한 후에 유효성을 검사하는 것이 좋습니다. 상황에 따라 모든 가입자에게 수동으로 데이터를 삽입해야 할 수도 있습니다. 참고로 최종 사용자가 중단없이 프로덕션 데이터베이스에서이 작업을 수행해야했습니다. 주의하시기 바랍니다.

0

충돌이 현재 보존 기간 이전에 발생한 경우 다시 가져올 마법이 있다고 생각하지 않습니다. 구독을 삭제하고 다시 생성 할 수 있습니까? (그 동안 델타를 수동으로 동기화 할 수 있습니까?) 아마도 가장 안전한 행동 일 겁니다.

관련 문제