복제 에이전트의 총 일별 실행 시간입니다.

Microsoft.SQLServer.Replication.Windows.Monitor.ReplicationAgentsLoad (UnitMonitor)

이 모니터는 배포자에서 복제 에이전트(배포, 로그 판독기, 병합, 큐 판독기 및 스냅숏)의 총 일일 실행 시간을 모니터링합니다.

Knowledge Base article:

요약

이 알림은 지난 24시간(기본값) 동안 각 복제 에이전트의 총 실행 시간을 계산하고, 에이전트의 총 실행 시간이 구성된 임계값을 초과하는지 확인합니다.

기본 임계값은 3시간의 경우 경고를 생성하고, 4시간의 경우 위험을 생성합니다.

참고: 연속 작업은 모니터링되지 않습니다.

원인

복제 중인 변경 내용 및 명령이 많은 경우 성능 병목 현상이 발생할 수 있습니다. 병목 현상의 일반적인 원인은 다음과 같습니다.

해결 방법

구독하는 데이터베이스의 인덱스가 과도하게 조각나지 않았는지 확인합니다.

추가

복제 성능 문제 해결에 대한 추가 정보는 http://technet.microsoft.com/library/ms152522.aspx 문서에서 확인할 수 있습니다.

특정 복제 에이전트의 동작/오류에 대한 자세한 정보를 가져오려면 자세한 정보 로깅을 사용하도록 설정합니다( http://support.microsoft.com/kb/312292).

재정의 가능한 매개 변수

이름

설명

기본값

경고 우선 순위

알림 우선 순위를 정의합니다.

보통

경고 심각도

알림 심각도를 정의합니다.

오류

사용

워크플로 사용하거나 사용하지 않도록 설정합니다.

오류 임계값

오류 임계값

4

알림 생성

워크플로에서 알림을 생성하는지 여부를 정의합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

300

측정 기간(시간)

측정에 사용된 기간(시간)

24

동기화 시간

동기화 시간

 

시간 제한(초)

닫히고 실패한 것으로 표시되기 전에 워크플로를 실행할 수 있는 시간을 지정합니다.

200

데이터베이스 연결 시간 제한(초)

워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다.

15

경고 임계값

경고 임계값

3

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Distributor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.DistributorAgentsLoad
RemotableTrue
AccessibilityPublic
Alert Message
Windows의 MSSQL 복제: 복제 에이전트가 총 일일 실행 시간 임계값을 초과했습니다.
지난 24시간 중 {2}시간 동안 배포자(이름: '{0}', 서버: '{1}')가 과도하게 사용되었습니다.
{3}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.ReplicationAgentsLoad" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.DistributorAgentsLoad" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.ReplicationAgentsLoad.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='LoadHours']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Message']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<WarningThreshold>3</WarningThreshold>
<ErrorThreshold>4</ErrorThreshold>
<LastHours>24</LastHours>
<CategoryList>Distribution, LogReader, Merge, QueueReader, Snapshot</CategoryList>
<ExcludeCategoryList/>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
</Configuration>
</UnitMonitor>