DetailPage-MSS-KB

기술 자료

기술 자료: 938671 - 마지막 검토: 2007년 8월 1일 수요일 - 수정: 1.4

 

이 페이지에서

현상

사용하는 트랜잭션 복제를 구성할 때 해당 -SkipErrors Microsoft SQL Server 2005, 배포 에이전트 매개 변수에서 일부 행을 건너뛸 수 있습니다. 이 동작은 게시자와 가입자 사이의 데이터 불일치 문제가 발생합니다.

또한 이 문제가 발생하면 배포 에이전트는 다음 메시지를 표시할 수 있습니다.
007-05-18 22:49:38.195 프로세스 다중 스트리밍 모드 에서 마지막 일괄 처리를 완료하지 못했습니다. 그리고 단일 연결 모드로 다시 설정 및 작업을 다시 시도합니다.

007-05-18 구독자에서 트랜잭션을 적용할 때 건너뛸 1 오류가 22:49:38.273. 007-05-18 22:49:38.367 101 승인한 100 명령 사용하여 배달되지 않았습니다.

007-05-18 22:49:38.477 100 승인한 100 명령 사용하여 배달되지 않았습니다. 007-05-18 22:49:38.570 구독자에서 트랜잭션을 적용할 때 1 오류를 건너뛰었습니다.

007-05-18 22:49:38.664 100 승인한 100 명령 사용하여 배달되지 않았습니다.

해결 방법

이 문제점에 대한 수정 프로그램은 먼저 누적 업데이트 2 릴리스되었습니다. 이 누적 업데이트 패키지에는 SQL Server 2005 서비스 팩 2를 구하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
936305  (http://support.microsoft.com/kb/936305/LN/ ) SQL Server 2005 서비스 팩 2용 누적 업데이트 패키지 2
참고 빌드는 누적되는 형태이므로 각 새 수정 프로그램 릴리스의 모든 핫픽스와 들어 및 릴리스 이전 SQL Server 2005 포함된 모든 보안 수정 프로그램을 수정합니다. 이 핫픽스가 포함된 최신 수정 릴리스를 적용하는 것이 좋습니다. 추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
937137  (http://support.microsoft.com/kb/937137/LN/ ) SQL Server 2005 서비스 팩 2가 릴리스된 후에 발표된 SQL Server 2005 빌드
Microsoft SQL Server 2005 핫픽스가 특정 SQL Server 서비스 팩 만들어집니다. SQL Server 2005 서비스 팩 2 설치를 위해 SQL Server 2005 서비스 팩 2의 핫픽스를 적용해야 합니다. 기본적으로 SQL Server 서비스 팩에 제공된 모든 핫픽스는 다음 SQL Server 서비스 팩이 포함되어 있습니다.

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다.

추가 정보

배포 에이전트가 오류를 발견한 경우 기본적으로 배포 에이전트는 중지해야 합니다. 특정 오류에 대한 –SkipErrors 매개 변수를 사용하는 경우 배포 에이전트가 이러한 오류를 건너뛰고 계속 후속 트랜잭션을 처리합니다.

문제를 재현하는 방법

  1. 복제 환경을 구성하는 설정하십시오. To do this, run the following scripts in SQL Query Analyzer.
    use master
    go
    exec sp_adddistributor  @distributor = @@SERVERNAME
    go
    exec sp_adddistributiondb  @database = 'distribution'
    go
    exec sp_adddistpublisher  @publisher = @@SERVERNAME, @distribution_db = 'distribution'
    go
    exec sp_replicationdboption pubdb, publish, false
    go
    exec sp_replicationdboption subdb, publish, false
    go
    if db_id('pubdb') is not null
        drop database pubdb
    go
    create database pubdb
    go
    if db_id('subdb') is not null
        drop database subdb 
    go
    create database subdb
    go
    exec sp_replicationdboption pubdb, publish, true
    go
    use pubdb
    go
    create table t(c1 int primary key, c2 int, c3 sysname null, c4 nchar(200) default 'a')
    go
    create unique index c2_idx on t(c2)
    go
    sp_addpublication @publication = 'p1', @status = 'active'
    go
    sp_addarticle @publication = 'p1', @article = 'a1', @source_table = 't', @schema_option = 0x00000000000300f3
    go
    sp_addsubscription @publication = 'p1', @article = 'all', @subscriber = @@servername, @destination_db = 'subdb'
    go
    
  2. Save the following command as a batch file, and then run the file to insert data.
    c: pushd "c:\program files\microsoft sql server\90\com\" del dist.out
    call snapshot.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1
    call logread.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 
    call distrib.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1 -subscriber %COMPUTERNAME% -subscriberdb subdb 
    start cmd.exe /s /k "logread.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -continuous"
    start cmd.exe /s /k "distrib.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1 -subscriber %COMPUTERNAME% -subscriberdb subdb -subscriptionstreams 8 -SkipErrors 2601:2627 -Output dist.out -OutputVerboseLevel 2 -continuous"
    popd
    osql -E -S[SQL_server] -Q"insert subdb..t (c1, c2) values (1000, 1000)"
    osql -E -S[SQL_server] -Q"insert subdb..t (c1, c2) values (2500, 1015)"
    osql -E -S[SQL_server] -Q"begin tran declare @v int select @v = 1 while (@v < 1020) begin insert pubdb..t (c1, c2) values (@v, @v) select @v = @v + 1 end commit tran"
    osql -E -S[SQL_server] -Q"declare @v int select @v = 3100 while (@v < 3500) begin insert pubdb..t (c1, c2) values (@v, @v) select @v = @v + 1 waitfor delay '0:0:0.10' end"
    
    참고 있는 개체 틀 SQL_server SQL Server 인스턴스 이름을 나타냅니다.
  3. 구독자 데이터베이스에 데이터가 복제되지 않았습니다 것을 알 수 있습니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
키워드: 
kbmt kbexpertiseinter kbqfe KB938671 KbMtko
기계 번역된 문서기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store