MSSQL_ENG020598
적용 대상: SQL Server
Azure SQL Managed Instance
메시지 세부 정보
attribute | 값 |
---|---|
제품 이름 | SQL Server |
이벤트 ID | 20598 |
이벤트 원본 | MSSQLSERVER |
구성 요소 | SQL Server 데이터베이스 엔진 |
심볼 이름 | |
메시지 텍스트 | 복제된 명령을 적용하는 동안 구독자에서 행을 찾을 수 없습니다. |
설명
이 오류는 배포 에이전트 구독자에서 행을 업데이트하려고 하지만 행이 삭제되었거나 행의 기본 키가 변경된 경우 트랜잭션 복제에서 발생합니다. 기본적으로 트랜잭션 게시 구독자는 변경 내용이 게시자로 다시 전파되지 않으므로 읽기 전용으로 처리되어야 합니다. 트랜잭션 복제의 경우, 변경 가능한 구독 또는 피어 투 피어 복제를 사용하는 경우에만 구독자에서 사용자 변경이 수행되어야 합니다. 이러한 옵션에 대한 자세한 내용은 Updatable Subscriptions for Transactional Replication 및 Peer-to-Peer Transactional Replication를 참조하십시오.
사용자 작업
이 문제를 해결하려면 다음을 수행합니다.
오류의 원인을 식별하는 동안 복제를 계속해야 하는 경우 배포 에이전트 대한 매개 변수 -SkipErrors 20598을 지정합니다. 이렇게 하면 에이전트가 20598 오류가 발생하는 변경 내용을 건너뛰고 다른 변경 내용을 복제할 수 있습니다.
구독자에서 삭제된 행 또는 게시자의 해당 행과 다른 기본 키가 있는 행을 식별합니다. tablediff 유틸리티를 사용하여 게시 및 구독 데이터베이스에서 다른 행을 확인할 수 있습니다. 복제된 데이터베이스에서 이 유틸리티를 사용하는 방법에 대한 자세한 내용은 복제된 테이블의 차이점 비교(복제 프로그래밍)를 참조하세요.
tablediff 유틸리티 또는 다른 메서드를 사용하여 구독자의 행을 수정합니다.
(선택 사항) -SkipErrors 매개 변수를 제거합니다.