복제 모니터는 복제 토폴로지 모니터링을 허용하는 그래픽 도구입니다. Transact-SQL 복제 저장 프로시저 또는 RMO(복제 관리 개체)를 사용하여 프로그래밍 방식으로 동일한 모니터링 데이터에 액세스할 수 있습니다. 이러한 개체를 사용하면 다음 작업을 프로그래밍할 수 있습니다.
게시자, 게시 및 구독의 상태를 모니터링합니다.
하나 이상의 구독자에서 병합 에이전트 세션을 모니터링합니다.
하나 이상의 구독자에서 적용되기를 기다리는 트랜잭션 명령을 모니터링합니다.
게시에 개입이 필요한 시기를 결정하는 임계값 메트릭을 정의합니다.
추적 프로그램 토큰의 상태를 모니터링합니다.
이 주제에서:
Transact-SQL
배포자로부터 게시자, 출판물 및 구독을 모니터링하려면
배포 데이터베이스의 배포자에서 sp_replmonitorhelppublisher 실행합니다. 이 배포자를 사용하는 모든 게시자에 대한 모니터링 정보를 반환합니다. 결과 집합을 단일 게시자로 제한하려면 @publisher 지정합니다.
배포 데이터베이스의 배포자에서 sp_replmonitorhelppublication 실행합니다. 이 배포자를 사용하여 모든 게시에 대한 모니터링 정보를 반환합니다. 결과 집합을 단일 게시자, 게시 또는 게시된 데이터베이스로 제한하려면 각각 @publisher, @publication 또는 @publisher_db 지정합니다.
배포 데이터베이스의 배포자에서 sp_replmonitorhelpsubscription 실행합니다. 이 배포자를 사용하여 모든 구독에 대한 모니터링 정보를 반환합니다. 결과 집합을 단일 게시자, 게시 또는 게시된 데이터베이스에 속한 구독으로 제한하려면 각각 @publisher, @publication 또는 @publisher_db 지정합니다.
구독자에서 적용되기를 기다리는 트랜잭션 명령을 모니터링하려면
- 배포 데이터베이스의 배포자에서 sp_replmonitorsubscriptionpendingcmds 실행합니다. 이 배포자를 통해 모든 구독에 대해 보류 중인 명령들에 대한 모니터링 정보를 반환합니다. 결과 집합을 단일 게시자, 구독자, 게시 또는 게시된 데이터베이스에 속하는 구독에 대해 보류 중인 명령으로 제한하려면 각각 @publisher, @subscriber, @publication 또는 @publisher_db 지정합니다.
업로드 또는 다운로드 대기 중인 병합 변경 내용을 모니터링하려면
게시 데이터베이스의 게시자에서 sp_showpendingchanges 실행합니다. 구독자에 복제되기를 기다리는 변경 내용에 대한 정보를 보여 주는 결과 집합을 반환합니다. 결과 집합을 단일 게시 또는 아티클에 속하는 변경 내용으로 제한하려면 각각 @publication 또는 @article 지정합니다.
구독 데이터베이스의 특정 구독자에서 sp_showpendingchanges를 실행하십시오. 게시자에 복제되기를 기다리는 변경 내용에 대한 정보를 보여 주는 결과 집합을 반환합니다. 결과 집합을 단일 게시 또는 아티클에 속하는 변경 내용으로 제한하려면 각각 @publication 또는 @article 지정합니다.
병합 에이전트 세션을 모니터링하려면
배포 데이터베이스의 배포자에서 sp_replmonitorhelpmergesession 실행합니다. 이 배포자를 사용하는 모든 구독에 대한 모든 병합 에이전트 세션에서 Session_id 포함한 모니터링 정보를 반환합니다. MSmerge_sessions 시스템 테이블을 쿼리하여Session_id 가져올 수도 있습니다.
배포 데이터베이스의 배포자에서 sp_replmonitorhelpmergesessiondetail 실행합니다. @session_id 대해 1단계의 Session_id 값을 지정합니다. 세션에 대한 자세한 모니터 정보가 표시됩니다.
관심 있는 각 세션에 대해 2단계를 반복합니다.
구독자에서 끌어오기 구독에 대한 병합 에이전트 세션을 모니터링하려면
구독 데이터베이스의 구독자에서 sp_replmonitorhelpmergesession 명령을 실행합니다. 지정된 구독의 경우 @publisher, @publication 및 @publisher_db 게시 데이터베이스의 이름을 지정합니다. 이 구독에서는 마지막 5회 병합 에이전트 세션의 모니터링 정보를 반환합니다. 결과 집합에 관심 있는 세션의 Session_id 값을 확인합니다.
구독 데이터베이스의 구독자에서 sp_replmonitorhelpmergesessiondetail 실행합니다. @session_id 대해 1단계의 Session_id 값을 지정합니다. 세션에 대한 자세한 모니터링 정보가 표시됩니다.
관심 있는 각 세션에 대해 2단계를 반복합니다.
게시에 대한 모니터 임계값 메트릭을 보고 수정하려면
배포 데이터베이스의 배포자에서 sp_replmonitorhelppublicationthresholds 실행합니다. 이 배포자를 사용하는 모든 게시에 대해 설정된 모니터링 임계값을 반환합니다. 단일 게시자 또는 게시된 데이터베이스 또는 단일 게시에 속하는 게시에 대한 임계값을 모니터링하도록 결과 집합을 제한하려면 각각 @publisher, @publisher_db 또는 @publication 지정합니다. 변경해야 하는 임계값에 대한 Metric_id 값을 확인합니다. 자세한 내용은 Set Thresholds and Warnings in Replication Monitor를 참조하세요.
배포 데이터베이스의 배포자에서 sp_replmonitorchangepublicationthreshold 실행합니다. 필요에 따라 다음을 지정합니다.
@metric_id 대해 1단계에서 가져온 Metric_id 값입니다.
@value 모니터 임계값 메트릭의 새 값입니다.
이 임계값에 도달할 때 경고가 기록될 @shouldalert 값은 1이고, 경고가 필요하지 않은 경우 값은 0입니다.
모니터 임계값 메트릭을 사용하도록 설정하려면 @mode 값이 1이거나, 사용하지 않도록 설정하려면 2 값입니다.
RMO(복제 관리 개체)
구독자에서 병합 게시에 대한 구독을 모니터링하려면
클래스를 사용하여 구독자에 대한 연결을 만듭니다 ServerConnection .
클래스 MergeSubscriberMonitor의 인스턴스를 생성하고, Publisher, Publication, PublisherDB, SubscriberDB 속성을 구독에 대해 설정하고, ConnectionContext 속성을 1단계에서 생성한 ServerConnection로 설정합니다.
아래의 방법 중 하나를 호출하여 이 구독의 병합 에이전트 세션 정보를 반환하십시오.
GetSessionsSummary - 마지막 5개의 병합 에이전트 세션에 대한 정보가 포함된 개체 배열 MergeSessionSummary 을 반환합니다. 관심 있는 모든 세션의 SessionId 값을 확인합니다.
GetSessionsSummary - 지난 시간 동안 발생한 병합 에이전트 세션에 대한 정보가 있는 개체 배열 MergeSessionSummary 을 시간 매개 변수로 반환합니다(마지막 5개 세션까지). 관심 있는 모든 세션의 SessionId 값을 확인합니다.
GetLastSessionSummary - 마지막 병합 에이전트 세션에 대한 정보가 포함된 개체를 반환 MergeSessionSummary 합니다. 이 세션의 SessionId 값을 확인합니다.
GetSessionsSummaryDataSet - 각 행에 하나씩 최대 5개의 병합 에이전트 세션에 대한 정보가 포함된 개체를 반환 DataSet 합니다. 관심 있는 세션에 대한 Session_id 열의 값을 확인합니다.
GetLastSessionSummaryDataRow - 마지막 병합 에이전트 세션에 대한 정보가 포함된 개체를 반환 DataRow 합니다. 이 세션의 Session_id 열 값을 확인합니다.
(선택 사항) mss로 전달된 개체의 MergeSessionSummary 데이터를 새로 고치거나 drRefresh로 전달된 개체의 DataRow 데이터를 새로 고치도록 호출 RefreshSessionSummaryRefreshSessionSummary 합니다.
3단계에서 얻은 세션 ID를 사용하여 다음 방법 중 하나를 호출하여 특정 세션의 세부 정보에 대한 정보를 반환합니다.
GetSessionDetails- 제공된 sessionID에 대한 개체 배열 MergeSessionDetail 을 반환합니다.
GetSessionDetailsDataSet- 지정된 sessionID에 대한 정보가 포함된 개체를 반환 DataSet 합니다.
배포자에서 모든 게시의 복제 특성을 모니터링합니다.
클래스를 사용하여 배포자에 대한 연결을 만듭니다 ServerConnection .
ReplicationMonitor 클래스의 인스턴스를 만듭니다.
ConnectionContext 속성을 1단계에서 만든 속성으로 ServerConnection 설정합니다.
메서드를 LoadProperties 호출하여 개체의 속성을 가져옵니다.
다음 방법 중 하나 이상을 실행하여 이 배포자를 사용하는 모든 게시자에 대한 복제 정보를 반환합니다.
EnumDistributionAgents - 이 배포자에서 DataSet 모든 배포 에이전트에 대한 정보를 포함하는 개체를 반환합니다.
EnumErrorRecords - 배포자에 저장된 오류에 대한 정보를 포함하는 개체를 반환 DataSet 합니다.
EnumLogReaderAgents - 배포자의 DataSet 모든 로그 판독기 에이전트에 대한 정보를 포함하는 개체를 반환합니다.
EnumMergeAgents - 배포자의 DataSet 모든 병합 에이전트에 대한 정보를 포함하는 개체를 반환합니다.
EnumMiscellaneousAgents - 배포자의 DataSet 다른 모든 복제 에이전트에 대한 정보를 포함하는 개체를 반환합니다.
EnumPublishers - 이 배포자의 DataSet 모든 게시자에 대한 정보를 포함하는 개체를 반환합니다.
EnumPublishers2 - 이 배포자를 사용하는 게시자를 반환하는 DataSet 객체를 반환합니다.
EnumQueueReaderAgents - 배포자의 DataSet 모든 큐 판독기 에이전트에 대한 정보를 포함하는 개체를 반환합니다.
EnumQueueReaderAgentSessionDetails - 지정된 큐 판독기 에이전트 및 세션에 대한 세부 정보가 포함된 개체를 반환 DataSet 합니다.
EnumQueueReaderAgentSessions - 지정된 큐 판독기 에이전트에 대한 세션 정보를 포함하는 개체를 반환 DataSet 합니다.
EnumSnapshotAgents - 배포자의 DataSet 모든 스냅샷 에이전트에 대한 정보를 포함하는 개체를 반환합니다.
배포자에서 특정 게시자에 대한 게시 속성을 모니터링하려면
클래스를 사용하여 배포자에 대한 연결을 만듭니다 ServerConnection .
이러한 방법 중 하나로 개체를 PublisherMonitor 가져옵니다.
PublisherMonitor 클래스의 인스턴스를 만듭니다. Publisher에 Name 대한 속성을 설정하고 1단계에서 만든 속성으로 ServerConnection 설정합니다ConnectionContext. 메서드를 LoadProperties 호출하여 개체의 속성을 가져옵니다. 이 메서드가 반환
false되면 게시자 이름이 잘못 정의되었거나 게시가 없습니다.PublisherMonitorCollection 기존 개체의 PublisherMonitors 속성을 통해 액세스한 ReplicationMonitor 항목에서
다음 방법 중 하나 이상을 실행하여 이 게시자에 속한 모든 게시에 대한 복제 정보를 반환합니다.
EnumDistributionAgentSessionDetails - 지정된 배포 에이전트 및 세션에 대한 세부 정보가 포함된 개체를 반환 DataSet 합니다.
EnumDistributionAgentSessions - 지정된 배포 에이전트에 대한 세션 정보가 포함된 개체를 반환 DataSet 합니다.
EnumErrorRecords - 지정된 오류에 DataSet 대한 오류 레코드 정보가 포함된 개체를 반환합니다.
EnumLogReaderAgentSessionDetails - 지정된 로그 판독기 에이전트 및 세션에 대한 세부 정보가 포함된 개체를 반환 DataSet 합니다.
EnumLogReaderAgentSessions - 지정된 로그 판독기 에이전트에 대한 세션 정보를 포함하는 개체를 반환 DataSet 합니다.
EnumMergeAgentSessionDetails - 지정된 병합 에이전트 및 세션에 대한 세부 정보가 포함된 개체를 반환 DataSet 합니다.
EnumMergeAgentSessionDetails2 - 지정된 병합 에이전트 및 세션에 대한 추가 세부 정보가 포함된 개체를 반환 DataSet 합니다.
EnumMergeAgentSessions - 지정된 병합 에이전트에 대한 세션 정보가 포함된 개체를 반환 DataSet 합니다.
EnumMergeAgentSessions2 - 지정된 병합 에이전트에 대한 추가 세션 정보가 포함된 개체를 반환 DataSet 합니다.
EnumPublications - 이 배포자 DataSet 에서 모든 게시에 대한 정보를 포함하는 개체를 반환합니다.
EnumPublications2 - 이 배포자에서 DataSet 모든 게시에 대한 추가 정보를 포함하는 개체를 반환합니다.
EnumSnapshotAgentSessionDetails - 지정된 스냅샷 에이전트 및 세션에 대한 세부 정보가 포함된 개체를 반환 DataSet 합니다.
EnumSnapshotAgentSessions - 지정된 스냅샷 에이전트에 대한 세션 정보를 포함하는 개체를 반환 DataSet 합니다.
EnumSubscriptions - 이 배포자에서 게시에 대한 모든 구독 정보를 포함하는 개체를 반환합니다 DataSet.
배포자에서 특정 게시의 속성을 모니터링하려면
클래스를 사용하여 배포자에 대한 연결을 만듭니다 ServerConnection .
개체 PublicationMonitor를 얻는 방법은 다음과 같습니다.
PublicationMonitor 클래스의 인스턴스를 만듭니다. 게시의 DistributionDBName, PublisherName, PublicationDBName, 및 Name 속성을 설정하고, 1단계에서 만든 ServerConnection로 ConnectionContext 속성을 설정합니다. 메서드를 LoadProperties 호출하여 개체의 속성을 가져옵니다. 이 메서드가 반환
false되면 게시 속성이 잘못 정의되었거나 게시가 존재하지 않습니다.기존 PublisherMonitor 객체의 PublicationMonitors 속성을 통해 액세스한 PublicationMonitorCollection에서
다음 메서드 중 하나 이상을 실행하여 이 게시에 대한 정보를 반환합니다.
EnumErrorRecords - 지정된 오류에 DataSet 대한 오류 레코드가 포함된 개체를 반환합니다.
EnumLogReaderAgent - 이 출판물에 대한 로그 판독기 에이전트의 정보를 포함하는 DataSet 개체를 반환합니다.
EnumMonitorThresholds - 이 출판물에 DataSet 대해 설정된 모니터 경고 한계값에 대한 정보를 포함하는 객체를 반환합니다.
EnumQueueReaderAgent - 이 게시에서 DataSet 사용하는 큐 판독기 에이전트에 대한 정보가 포함된 개체를 반환합니다.
EnumSnapshotAgent - 이 게시에 대한 스냅샷 에이전트의 정보를 포함하는 DataSet 객체를 반환합니다.
EnumSubscriptions - 이 출판물에 대한 구독 정보를 포함하는 DataSet 개체를 반환합니다.
EnumSubscriptions2 - 제공된 SubscriptionResultOption에 따라 이 게시에 대한 구독을 위한 추가 정보를 포함하는 DataSet 개체를 반환합니다.
EnumTracerTokenHistory - 지정된 추적 프로그램 토큰에 대한 대기 시간 정보를 포함하는 개체를 반환 DataSet 합니다.
EnumTracerTokens - 이 게시에 삽입된 모든 트레이서 토큰에 대한 정보를 포함하는 DataSet 객체를 반환합니다.
구독자에서 적용되기를 기다리는 트랜잭션 명령을 모니터링하려면
클래스를 사용하여 배포자에 대한 연결을 만듭니다 ServerConnection .
이러한 방법 중 하나로 개체를 PublicationMonitor 가져옵니다.
PublicationMonitor 클래스의 인스턴스를 만듭니다. 게시에 DistributionDBName대한 , PublisherName, PublicationDBName및 Name 속성을 설정하고 1단계에서 만든 속성으로 ServerConnection 설정합니다ConnectionContext. 메서드를 LoadProperties 호출하여 개체의 속성을 가져옵니다. 이 메서드가 반환
false되면 게시 속성이 잘못 정의되었거나 게시가 존재하지 않습니다.PublicationMonitorCollection 기존 개체의 PublicationMonitors 속성을 통해 액세스한 PublisherMonitor 항목에서
TransPendingCommandInfo 메서드를 실행하여 PendingCommandInfo 객체를 반환합니다.
이 PendingCommandInfo 개체의 속성을 사용하여 보류 중인 명령의 예상 수와 이러한 명령 배달을 완료하는 데 걸리는 시간을 결정합니다.
게시에 대한 모니터 경고 임계값을 설정하려면
클래스를 사용하여 배포자에 대한 연결을 만듭니다 ServerConnection .
PublicationMonitor 개체를 이러한 방법 중 하나로 가져옵니다.
PublicationMonitor 클래스의 인스턴스를 만듭니다. 게시물의 DistributionDBName, PublisherName, PublicationDBName, 및 Name 속성을 설정하고, 1단계에서 만든 ServerConnection를 ConnectionContext 속성으로 설정합니다. 메서드를 LoadProperties 호출하여 개체의 속성을 가져옵니다. 이 메서드가 반환
false되면 게시 속성이 잘못 정의되었거나 게시가 존재하지 않습니다.기존 PublisherMonitor 객체의 PublicationMonitors 속성을 통해 액세스한 PublicationMonitorCollection에서
메서드를 실행합니다 EnumMonitorThresholds . 반환된 ArrayListMonitorThreshold 개체에서 현재 임계값 설정을 확인합니다.
메서드를 실행합니다 ChangeMonitorThreshold . 다음 매개 변수를 전달합니다.
metricID - Int32 다음 표의 모니터링 임계값 메트릭을 나타내는 값입니다.
가치 설명 1 expiration- 트랜잭션 게시에 대한 구독의 만료가 임박한지 모니터링합니다.2 latency- 트랜잭션 게시물에 대한 구독 성능을 모니터링합니다.4 mergeexpiration- 병합 게시에 대한 구독 만료가 임박한지 모니터링합니다.5 mergeslowrunduration- 병합 동기화 기간을 낮은 대역폭의 전화 접속 연결을 통해 모니터링합니다.6 mergefastrunduration- LAN(고대역폭) 연결을 통해 병합 동기화 기간을 모니터링합니다.7 mergefastrunspeed- LAN(고대역폭) 연결을 통해 병합 동기화의 동기화 속도를 모니터링합니다.8 (여덟) mergeslowrunspeed- 낮은 대역폭(전화 접속) 연결을 통해 병합 동기화의 동기화 속도를 모니터링합니다.활성화 - Boolean 출판에 대해 메트릭이 활성화되었는지를 나타내는 값입니다.
thresholdValue - 임계값을 설정하는 정수 값입니다.
shouldAlert - 이 임계값이 경고를 생성해야 하는지 여부를 나타내는 정수입니다.