MSSQL_ENG020598

적용 대상:SQL ServerAzure SQL Managed Instance

메시지 세부 정보

attribute
제품 이름 SQL Server
이벤트 ID 20598
이벤트 원본 MSSQLSERVER
구성 요소 SQL Server 데이터베이스 엔진
심볼 이름
메시지 텍스트 복제된 명령을 적용하는 동안 구독자에서 행을 찾을 수 없습니다.

설명

이 오류는 배포 에이전트가 구독자에서 행을 업데이트하려고 하지만 행이 삭제되었거나 행의 기본 키가 변경된 경우 트랜잭션 복제에서 발생합니다. 기본적으로 트랜잭션 게시 구독자는 변경 내용이 게시자로 다시 전파되지 않으므로 읽기 전용으로 처리되어야 합니다. 트랜잭션 복제의 경우, 변경 가능한 구독 또는 피어 투 피어 복제를 사용하는 경우에만 구독자에서 사용자 변경이 수행되어야 합니다. 이러한 옵션에 대한 자세한 내용은 Updatable Subscriptions for Transactional ReplicationPeer-to-Peer Transactional Replication를 참조하십시오.

사용자 작업

이 문제를 해결하려면 다음을 수행합니다.

  1. 오류의 원인을 식별하는 동안 복제를 계속해야 하는 경우 배포 에이전트에 대해 -SkipErrors 20598 매개 변수를 지정합니다. 이렇게 하면 에이전트가 20598 오류가 발생하는 변경 내용을 건너뛰고 다른 변경 내용을 복제할 수 있습니다.

  2. 구독자에서 삭제된 행 또는 게시자의 해당 행과 다른 기본 키가 있는 행을 식별합니다. tablediff 유틸리티사용하여 게시 및 구독 데이터베이스에서 다른 행을 확인할 수 있습니다. 복제된 데이터베이스에서 이 유틸리티를 사용하는 방법에 대한 자세한 내용은 복제된 테이블의 차이점 비교(복제 프로그래밍)를 참조하세요.

  3. tablediff 유틸리티 또는 다른 메서드를 사용하여 구독자의 행을 수정합니다.

  4. (선택 사항) -SkipErrors 매개 변수를 제거합니다.

참고 항목

오류 및 이벤트 참조(복제)