MSSQL_ENG020598MSSQL_ENG020598

메시지 정보Message Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 2059820598
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQL Server 데이터베이스 엔진SQL Server Database Engine
심볼 이름Symbolic Name
메시지 텍스트Message Text 복제된 명령을 적용하는 동안 구독자에서 행을 찾을 수 없습니다.The row was not found at the Subscriber when applying the replicated command.

설명Explanation

배포 에이전트가 구독자에서 행을 업데이트하려고 하지만 해당 행이 삭제되었거나 해당 행의 기본 키가 변경된 경우 트랜잭션 복제에서 이 오류가 발생합니다.This error is raised in transactional replication if the Distribution Agent attempts to update a row at the Subscriber, but the row has been deleted or the primary key of the row has been changed. 기본적으로 변경 내용은 게시자로 다시 전파되지 않기 때문에 트랜잭션 게시에 대한 구독자는 읽기 전용으로 취급됩니다.By default, Subscribers to transactional publications should be treated as read-only, because changes are not propagated back to the Publisher. 트랜잭션 복제의 경우 업데이트할 수 있는 구독이나 피어 투 피어 복제를 사용하는 경우에만 사용자가 구독자에서 변경해야 합니다.For transactional replication, user changes should be made at the Subscriber only if updatable subscriptions or peer-to-peer replication is used. 이러한 옵션에 대한 자세한 내용은 Updatable Subscriptions for Transactional ReplicationPeer-to-Peer Transactional Replication를 참조하십시오.For information about these options, see Updatable Subscriptions for Transactional Replication and Peer-to-Peer Transactional Replication.

사용자 동작User Action

이 문제를 해결하려면To resolve this problem:

  1. 오류 원인을 식별하는 동안 복제가 계속되어야 하는 경우 배포 에이전트에 매개 변수 -SkipErrors 20598 을 지정합니다.If replication must continue while you identify the source of the error, specify the parameter -SkipErrors 20598 for the Distribution Agent. 이렇게 하면 에이전트는 오류 20598이 발생한 변경 내용을 건너뛰고 다른 변경 내용을 복제할 수 있습니다.This allows the agent to skip changes that result in error 20598, while allowing other changes to be replicated.

  2. 구독자에서 삭제되었거나 기본 키가 게시자의 해당 행과 일치하지 않는 행을 식별합니다.Identify which rows at the Subscriber have been deleted or have a different primary key than the corresponding rows at the Publisher. tablediff Utility 를 사용하여 게시 및 구독 데이터베이스에서 일치하지 않는 행을 확인할 수 있습니다.You can use the tablediff Utility to determine which rows are different in the publication and subscription databases. 복제된 데이터베이스에서 이 유틸리티를 사용하는 방법은 복제된 테이블의 차이점 비교(복제 프로그래밍)를 참조하세요.For information about using this utility with replicated databases, see Compare Replicated Tables for Differences (Replication Programming).

  3. tablediff 유틸리티나 다른 방법을 사용하여 구독자에서 행을 수정합니다.Correct the rows at the Subscriber using the tablediff utility or another method.

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

참고 항목See Also

오류 및 이벤트 참조(복제)Errors and Events Reference (Replication)