다음을 통해 공유


방법: 구독자에서 데이터 유효성 검사(복제 Transact-SQL 프로그래밍)

복제를 사용하면 복제 저장 프로시저를 통해 구독자의 데이터가 게시자의 데이터와 일치하는지를 프로그래밍 방식으로 확인할 수 있습니다. 이때 사용되는 절차는 복제 토폴로지의 유형에 따라 달라집니다.

트랜잭션 게시의 모든 아티클에 대해 데이터 유효성을 검사하려면

  1. 게시 데이터베이스의 게시자에서 sp_publication_validation(Transact-SQL)을 실행합니다. @publication을 지정하고 @rowcount_only에 다음 값 중 하나를 지정합니다.

    • 1 - 행 개수의 유효성만 검사합니다(기본값).

    • 2 - 행 개수 및 이진 체크섬의 유효성을 검사합니다.

    [!참고]

    sp_publication_validation(Transact-SQL)을 실행하면 게시의 각 아티클에 대해 sp_article_validation(Transact-SQL)이 실행됩니다. sp_publication_validation(Transact-SQL)을 올바르게 실행하려면 게시된 기본 테이블의 모든 열에 대한 SELECT 권한이 있어야 합니다.

  2. (옵션) 각 구독에 대해 배포 에이전트를 아직 실행하지 않은 경우 배포 에이전트를 시작합니다. 자세한 내용은 방법: 끌어오기 구독 동기화(Replication Programming)방법: 밀어넣기 구독 동기화(Replication Programming)를 참조하십시오.

  3. 유효성 검사의 결과에 대한 에이전트 출력을 확인합니다. 자세한 내용은 복제된 데이터의 유효성 검사를 참조하십시오.

트랜잭션 게시의 단일 아티클에 대한 데이터 유효성을 검사하려면

  1. 게시 데이터베이스의 게시자에서 sp_article_validation(Transact-SQL)을 실행합니다. @publication을 지정하고 @article에 아티클 이름을 지정한 후 @rowcount_only에 다음 값 중 하나를 지정합니다.

    • 1 - 행 개수의 유효성만 검사합니다(기본값).

    • 2 - 행 개수 및 이진 체크섬의 유효성을 검사합니다.

    [!참고]

    sp_article_validation(Transact-SQL)을 올바르게 실행하려면 게시된 기본 테이블의 모든 열에 대한 SELECT 권한이 있어야 합니다.

  2. (옵션) 각 구독에 대해 배포 에이전트를 아직 실행하지 않은 경우 배포 에이전트를 시작합니다. 자세한 내용은 방법: 끌어오기 구독 동기화(Replication Programming)방법: 밀어넣기 구독 동기화(Replication Programming)를 참조하십시오.

  3. 유효성 검사의 결과에 대한 에이전트 출력을 확인합니다. 자세한 내용은 복제된 데이터의 유효성 검사를 참조하십시오.

트랜잭션 게시에 대한 단일 구독자의 데이터 유효성을 검사하려면

  1. 게시 데이터베이스의 게시자에서 BEGIN TRANSACTION(Transact-SQL)을 사용하여 명시적 트랜잭션을 엽니다.

  2. 게시 데이터베이스의 게시자에서 sp_marksubscriptionvalidation(Transact-SQL)을 실행합니다. @publication에 게시를 지정하고 @subscriber에 구독자 이름을 지정한 후 @destination_db에 구독 데이터베이스 이름을 지정합니다.

  3. (옵션) 유효성을 검사할 각 구독에 대해 2단계를 반복합니다.

  4. 게시 데이터베이스의 게시자에서 sp_article_validation(Transact-SQL)을 실행합니다. @publication을 지정하고 @article에 아티클 이름을 지정한 후 @rowcount_only에 다음 값 중 하나를 지정합니다.

    • 1 - 행 개수의 유효성만 검사합니다(기본값).

    • 2 - 행 개수 및 이진 체크섬의 유효성을 검사합니다.

    [!참고]

    sp_article_validation(Transact-SQL)을 올바르게 실행하려면 게시된 기본 테이블의 모든 열에 대한 SELECT 권한이 있어야 합니다.

  5. 게시 데이터베이스의 게시자에서 COMMIT TRANSACTION(Transact-SQL)을 사용하여 트랜잭션을 커밋합니다.

  6. (옵션) 유효성을 검사할 각 아티클에 대해 1~5단계를 반복합니다.

  7. (옵션) 배포 에이전트를 아직 실행하지 않은 경우 배포 에이전트를 시작합니다. 자세한 내용은 방법: 끌어오기 구독 동기화(Replication Programming)방법: 밀어넣기 구독 동기화(Replication Programming)를 참조하십시오.

  8. 유효성 검사의 결과에 대한 에이전트 출력을 확인합니다. 자세한 내용은 방법: 구독자에서 데이터 유효성 검사(SQL Server Management Studio)를 참조하십시오.

병합 게시에 대한 모든 구독의 데이터 유효성을 검사하려면

  1. 게시 데이터베이스의 게시자에서 s sp_validatemergepublication(Transact-SQL)을 실행합니다. @publication을 지정하고 @level에 다음 값 중 하나를 지정합니다.

    • 1 - 행 개수의 유효성만 검사합니다.

    • 3 - 행 개수 및 이진 체크섬의 유효성을 검사합니다.

    이렇게 하면 모든 구독이 유효성 검사 대상으로 표시됩니다.

  2. 각 구독에 대해 병합 에이전트를 시작합니다. 자세한 내용은 방법: 끌어오기 구독 동기화(Replication Programming)방법: 밀어넣기 구독 동기화(Replication Programming)를 참조하십시오.

  3. 유효성 검사의 결과에 대한 에이전트 출력을 확인합니다. 자세한 내용은 방법: 구독자에서 데이터 유효성 검사(SQL Server Management Studio)를 참조하십시오.

병합 게시에 대한 선택한 구독의 데이터 유효성을 검사하려면

  1. 게시 데이터베이스의 게시자에서 sp_validatemergesubscription(Transact-SQL)을 실행합니다. @publication을 지정하고 @subscriber에 구독자 이름을 지정하고 @subscriber_db에 구독 데이터베이스 이름을 지정한 후 @level에 다음 값 중 하나를 지정합니다.

    • 1 - 행 개수의 유효성만 검사합니다.

    • 3 - 행 개수 및 이진 체크섬의 유효성을 검사합니다.

    이렇게 하면 선택한 구독이 유효성 검사 대상으로 표시됩니다.

  2. 각 구독에 대해 병합 에이전트를 시작합니다. 자세한 내용은 방법: 끌어오기 구독 동기화(Replication Programming)방법: 밀어넣기 구독 동기화(Replication Programming)를 참조하십시오.

  3. 유효성 검사의 결과에 대한 에이전트 출력을 확인합니다.

  4. 유효성을 검사할 각 구독에 대해 1~3단계를 반복합니다.

[!참고]

복제 병합 에이전트를 실행할 때 -Validate 매개 변수를 지정하여 동기화가 끝날 때 병합 게시에 대한 구독의 유효성을 검사할 수도 있습니다.

병합 에이전트 매개 변수를 사용하여 구독의 데이터 유효성을 검사하려면