배포 에이전트 -SkipErrors 매개 변수 사용

이 문서에서는 배포 에이전트 매개 변수를 -SkipErrors 사용하는 것을 소개합니다.

원래 제품 버전: SQL Server
원래 KB 번호: 327817

요약

Microsoft SQL Server 배포 에이전트 트랜잭션 복제에서 표시된 오류를 건너뛰고 배포 프로세스를 계속할 수 있도록 허용하는 새 매개 변수 -SkipErrors 를 배포 에이전트 포함합니다.

다음은 온라인 SQL Server 설명서의 에이전트 오류 처리 항목에서 발췌한 내용입니다.

일반적인 복제 처리에서는 건너뛰어야 하는 오류가 발생하지 않아야 합니다. 트랜잭션 복제 중에 오류를 건너뛰는 기능은 오류가 예상되고 복제에 영향을 미치지 않도록 하는 고유한 상황에 사용할 수 있습니다(예: 로그 전달 중에 보조 게시자에 장애 조치(failover)하는 경우).

다음을 잘 이해하는 경우에만 이 매개 변수를 신중하게 사용하는 것이 좋습니다.

  • 오류가 나타내는 내용입니다.
  • 오류가 발생하는 이유입니다.
  • 오류를 해결하는 대신 건너뛰는 것이 더 좋은 이유입니다.

이러한 항목에 대한 답변을 모르는 경우 매개 변수를 부적절하게 사용하면 -SkipErrors 게시자와 구독자 간에 데이터 불일치가 발생할 수 있습니다. 이 문서에서는 매개 변수를 잘못 사용할 때 발생할 수 있는 몇 가지 문제에 대해 -SkipErrors 설명합니다.

추가 정보

트랜잭션 복제에서 게시자의 데이터 변경 내용은 트랜잭션 단위의 구독자에 전파됩니다.

한 트랜잭션에는 여러 명령이 있을 수 있습니다. 기본적으로 하나의 명령이 실패하면 전체 복제 트랜잭션이 구독자에서 롤백됩니다. 배포 에이전트 특정 오류를 건너뛸 수 있도록 매개 변수를 추가 -SkipErrors 하면 이 오류를 일으키는 개별 명령이 구독자에 적용되지 않지만 동일한 트랜잭션의 다른 모든 명령이 적용됩니다. 이 경우 복제 트랜잭션은 구독자에 부분적으로만 적용되므로 게시자와 구독자 간의 데이터 불일치가 발생할 수 있습니다.

예를 들면

T1이라는 구독자 테이블에 복제되기를 기다리는 트랜잭션이 있습니다. 이 트랜잭션에는 100개의 insert 문이 포함됩니다. 구독자에 적용되는 경우 처음 90은 프로세스를 올바르게 삽입합니다. 그러나 90초 삽입 문이 실패하고 기본 키 위반 오류 2627이 발생합니다.

매개 변수를 -SkipErrors 사용하지 않는 경우(기본 동작):

기본적으로 전체 트랜잭션이 롤백되고 100개의 새 레코드가 구독 테이블에 삽입되지 않습니다. 이 경우 트랜잭션을 구독자에 다시 적용할 수 있도록 복제 오류를 수정해야 합니다.

매개 변수를 -SkipErrors 사용하는 경우:

배포 에이전트 배포 에이전트 기록에서 오류를 기록하고, 이 오류를 건너뛰고, 배포 프로세스를 계속합니다. 따라서 오류를 발생시킨 91개의 새 레코드를 제외하고 다른 99개의 새 레코드가 구독 테이블에 삽입됩니다. 구독자에서 오류를 수동으로 수정한 후에도 이 트랜잭션은 배포 에이전트 다시 적용되지 않습니다. 따라서 이 경우 구독자가 90초의 새 레코드를 누락하고 데이터 불일치 문제가 발생합니다.

또한 2000년 SQL Server 일반적으로 배포 에이전트 여러 게시에서 공유되므로(기본적으로 게시 데이터베이스 및 구독 데이터베이스 쌍당 하나의 배포 에이전트 있음) 배포 에이전트 작업에 매개 변수를 추가 -SkipErrors 하면 이 에이전트가 제공하는 모든 게시에 영향을 줍니다. SQL 2005 및 SQL 2008 버전에서 트랜잭션 복제는 새 게시 마법사에서 만든 게시에 대해 기본적으로 독립적인 에이전트를 사용합니다. 저장 프로시저를 사용하여 sp_addpublication 만든 게시의 경우 기본 동작은 공유 에이전트를 사용하는 것입니다.

특정 게시에 -SkipErrors 매개 변수를 사용하려면 하나의 구독만 서비스하는 독립 에이전트를 사용합니다. 독립 에이전트를 사용하려면 버전에 대한 단계를 수행합니다.

SQL Server 2000

  1. SQL Server Enterprise 관리자에서 게시를 마우스 오른쪽 단추로 클릭하고 를 클릭한 Properties다음 구독 옵션에서 이 데이터베이스의 다른 게시와 독립적인 배포 에이전트 사용 옵션을 클릭합니다.

    참고

    이 게시에 구독을 추가한 후에는 이 옵션을 켤 수 없습니다.

  2. 매개 변수를 -SkipErrors 특정 구독의 배포 에이전트 추가합니다.

SQL Server 2005년 및 2008년 SQL Server

  1. SQL Server 관리 스튜디오에서 복제로 이동한 다음 로컬 게시 섹션에서 게시를 마우스 오른쪽 단추로 클릭하고 속성을 클릭한 다음 구독 옵션 페이지에서 Independent 배포 에이전트 값을 False에서 True로 변경합니다.

    참고

    이 게시에 구독을 추가한 후에는 이 옵션을 켤 수 없습니다.

  2. 매개 변수를 -SkipErrors 특정 구독의 배포 에이전트 추가합니다.

자세한 내용은 다음 항목을 참조하세요.