동기 복제본 데이터 동기화 모니터

Microsoft.SQLServer.2012.AlwaysOn.AvailabilityReplicasSynchronizationState (UnitMonitor)

동기 복제본 데이터 동기화

Knowledge Base article:

요약

이 모니터는 모든 가용성 복제본의 데이터 동기화 상태를 롤업하고 예상되는 동기화 상태가 아닌 가용성 복제본이 있는지 확인합니다. SYNCHRONIZING 상태가 아닌 비동기 복제본이 있거나 SYNCHRONIZED 상태가 아닌 동기 복제본이 있으면 모니터는 비정상 상태입니다. 그렇지 않으면 모니터 상태는 정상입니다.

원인

이 가용성 그룹에서 하나 이상의 동기 복제본이 현재 동기화되지 않았습니다. 복제본 동기화 상태는 SYNCHRONIZING 또는 NOT SYNCHRONIZING일 수 있습니다.

해결 방법

가용성 복제본 모니터 상태를 사용하여 동기화 상태가 올바르지 않은 가용성 복제본을 찾고 해당 가용성 복제본에서 문제를 해결합니다.

재정의 가능한 매개 변수

이름

설명

기본값

사용

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

경고 생성

워크플로가 알림을 생성하는지를 정의합니다.

아니요

간격(초)

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

900

정책 이름

 

$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth"]/AvailabilityGroupName$-AlwaysOnAgSynchronousReplicasDataSynchronizationHealthPolicy

제한 시간(초)

워크플로가 닫히고 실패한 항목으로 표시될 때까지 실행이 허용되는 시간을 지정합니다.

300

Element properties:

TargetMicrosoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeMicrosoft.SQLServer.2012.AlwaysOn.SystemPolicyScriptMonitorType
RemotableTrue
AccessibilityPublic
RunAsMicrosoft.SQLServer.2012.AlwaysOn.MonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.AlwaysOn.AvailabilityReplicasSynchronizationState" RunAs="Microsoft.SQLServer.2012.AlwaysOn.MonitoringAccount" TypeID="Microsoft.SQLServer.2012.AlwaysOn.SystemPolicyScriptMonitorType" Accessibility="Public" Enabled="true" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Target="AlwaysOnDisc!Microsoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth" Priority="Normal">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="HealthState" HealthState="Success"/>
<OperationalState ID="Critical" MonitorTypeStateID="ErrorState" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<Interval>900</Interval>
<TimeoutSeconds>300</TimeoutSeconds>
<PolicyName>$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth"]/AvailabilityGroupName$-AlwaysOnAgSynchronousReplicasDataSynchronizationHealthPolicy</PolicyName>
<InstanceName>$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth"]/InstanceName$</InstanceName>
</Configuration>
</UnitMonitor>