방법: 프로그래밍 방식으로 복제 모니터링(복제 Transact-SQL 프로그래밍)

복제 모니터는 복제 토폴로지를 모니터링하는 데 사용할 수 있는 그래픽 도구입니다. 복제 저장 프로시저를 사용하여 프로그래밍 방식으로 동일한 모니터링에 액세스할 수 있습니다. 이러한 저장 프로시저를 사용하면 다음 태스크를 프로그래밍할 수 있습니다.

  • 게시자, 게시 및 구독의 상태 모니터링

  • 하나 이상의 구독자에서 병합 에이전트 세션 모니터링

  • 하나 이상의 구독자에서 적용 대기 중인 트랜잭션 명령 모니터링

  • 게시에 개입이 필요한 시기를 결정하는 임계값 메트릭 정의

배포자에서 게시자, 게시 및 구독을 모니터링하려면

  1. 배포 데이터베이스의 배포자에서 sp_replmonitorhelppublisher를 실행합니다. 이렇게 하면 이 배포자를 사용하는 모든 게시자에 대한 모니터링 정보가 반환됩니다. 결과 집합을 단일 게시자로 제한하려면 @publisher를 지정합니다.

  2. 배포 데이터베이스의 배포자에서 sp_replmonitorhelppublication을 실행합니다. 이렇게 하면 이 배포자를 사용하는 모든 게시에 대한 모니터링 정보가 반환됩니다. 결과 집합을 단일 게시자, 게시 또는 게시된 데이터베이스로 제한하려면 각각 @publisher, @publication 또는 @publisher_db를 지정합니다.

  3. 배포 데이터베이스의 배포자에서 sp_replmonitorhelpsubscription을 실행합니다. 이렇게 하면 이 배포자를 사용하는 모든 구독에 대한 모니터링 정보가 반환됩니다. 결과 집합을 단일 게시자, 게시 또는 게시된 데이터베이스에 속하는 구독으로 제한하려면 각각 @publisher, @publication 또는 @publisher_db를 지정합니다.

구독자에서 적용 대기 중인 트랜잭션 명령을 모니터링하려면

  • 배포 데이터베이스의 배포자에서 sp_replmonitorsubscriptionpendingcmds를 실행합니다. 이렇게 하면 이 배포자를 사용하는 모든 구독에 대해 보류 중인 모든 명령의 모니터링 정보가 반환됩니다. 결과 집합을 단일 게시자, 구독자, 게시 또는 게시된 데이터베이스에 속하는 구독에 대해 보류 중인 명령으로 제한하려면 각각 @publisher, @subscriber, @publication 또는 @publisher_db를 지정합니다.

업로드 또는 다운로드 대기 중인 병합 변경 내용을 모니터링하려면

  1. 게시 데이터베이스의 게시자에서 sp_showpendingchanges를 실행합니다. 이렇게 하면 구독자에 대해 복제 대기 중인 변경 내용에 대한 정보를 보여 주는 결과 집합이 반환됩니다. 결과 집합을 단일 게시 또는 아티클에 속하는 변경 내용으로 제한하려면 각각 @publication 또는 @article을 지정합니다.

  2. 구독 데이터베이스의 구독자에서 sp_showpendingchanges를 실행합니다. 이렇게 하면 게시자에 대해 복제 대기 중인 변경 내용에 대한 정보를 보여 주는 결과 집합이 반환됩니다. 결과 집합을 단일 게시 또는 아티클에 속하는 변경 내용으로 제한하려면 각각 @publication 또는 @article을 지정합니다.

병합 에이전트 세션을 모니터링하려면

  1. 배포 데이터베이스의 배포자에서 sp_replmonitorhelpmergesession을 실행합니다. 이렇게 하면 이 배포자를 사용하는 모든 구독의 모든 병합 에이전트 세션에 대해 Session_id를 포함한 모니터링 정보가 반환됩니다. MSmerge_sessions 시스템 테이블을 쿼리하여 Session_id를 얻을 수도 있습니다.

  2. 배포 데이터베이스의 배포자에서 sp_replmonitorhelpmergesessiondetail을 실행합니다. @session_id에 1단계에서 얻은 Session_id 값을 지정합니다. 이렇게 하면 해당 세션에 대한 세부 모니터링 정보가 표시됩니다.

  3. 각 관심 세션에 대해 2단계를 반복합니다.

구독자에서 끌어오기 구독에 대한 병합 에이전트 세션을 모니터링하려면

  1. 구독 데이터베이스의 구독자에서 sp_replmonitorhelpmergesession을 실행합니다. 지정된 구독에 대해 @publisher@publication을 지정하고 @publisher_db에 게시 데이터베이스의 이름을 지정합니다. 이렇게 하면 이 구독의 마지막 다섯 개 병합 에이전트 세션에 대한 모니터링 정보가 반환됩니다. 결과 집합에 있는 관심 세션의 Session_id 값을 확인합니다.

  2. 구독 데이터베이스의 구독자에서 sp_replmonitorhelpmergesessiondetail을 실행합니다. @session_id에 1단계에서 얻은 Session_id 값을 지정합니다. 이렇게 하면 해당 세션에 대한 세부 모니터링 정보가 표시됩니다.

  3. 각 관심 세션에 대해 2단계를 반복합니다.

게시에 대한 모니터 임계값 메트릭을 보거나 수정하려면

  1. 배포 데이터베이스의 배포자에서 sp_replmonitorhelppublicationthresholds를 실행합니다. 이렇게 하면 이 배포자를 사용하는 모든 게시의 모니터링 임계값 집합이 반환됩니다. 결과 집합을 단일 게시자 또는 게시된 데이터베이스에 속하는 게시에 대한 모니터 임계값으로 제한하거나 단일 게시로 제한하려면 각각 @publisher, @publisher_db 또는 @publication을 지정합니다. 변경해야 하는 임계값에 대한 Metric_id 값을 확인합니다. 자세한 내용은 복제 모니터에 임계값 및 경고 설정을 참조하십시오.

  2. 배포 데이터베이스의 배포자에서 sp_replmonitorchangepublicationthreshold를 실행합니다. 다음을 필요한 대로 지정합니다.

    • @metric_id에 1단계에서 얻은 Metric_id 값을 지정합니다.

    • @value에 모니터 임계값 메트릭의 새 값을 지정합니다.

    • 이 임계값에 도달할 때 경고를 기록하려면 @shouldalert에 값 1을 지정하고, 경고가 필요하지 않은 경우 값 0을 지정합니다.

    • 모니터 임계값 메트릭을 사용하려면 @mode에 값 1을 지정하고 모니터 임계값 메트릭을 사용하지 않으려면 값 2를 지정합니다.