Überwachung der Verfügbarkeitsgruppe für automatisches Failover

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

Verfügbarkeitsgruppe für automatisches Failover

Knowledge Base article:

Zusammenfassung

Dieser Monitor überprüft, ob die Verfügbarkeitsgruppe über mindestens ein sekundäres Replikat verfügt, das bereit für das Failover ist. Der Monitor befindet sich in einem fehlerhaften Zustand, und es wird eine Warnung ausgelöst, wenn für das primäre Replikat der automatische Failovermodus aktiviert ist, aber keines der sekundären Replikate in der Verfügbarkeitsgruppe für das automatische Failover bereit ist. Der Monitor befindet sich in einem ordnungsgemäßen Zustand, wenn mindestens ein sekundäres Replikat bereit für das automatische Failover ist.

Ursachen

Die Verfügbarkeitsgruppe ist nicht für das automatische Failover bereit. Das primäre Replikat wurde für das automatische Failover konfiguriert. Das sekundäre Replikat ist jedoch nicht für das automatische Failover bereit. Das sekundäre Replikat, das für automatisches Failover konfiguriert wurde, ist ggf. nicht verfügbar, oder dessen Datensynchronisierungsstatus lautet derzeit SYNCHRONIZED.

Lösungen

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Generiert Warnungen.

Definiert, ob der Workflow eine Warnung generiert.

Nein

Intervall (Sekunden)

Das wiederkehrende Zeitintervall in Sekunden, in dem der Workflow ausgeführt wird.

900

Richtlinienname

 

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

Timeout (Sekunden)

Gibt an, wie lange der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlerhaft markiert wird.

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.AutomaticFailoverReadiness" 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="Error"/>
</OperationalStates>
<Configuration>
<Interval>900</Interval>
<TimeoutSeconds>300</TimeoutSeconds>
<PolicyName>$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth"]/AvailabilityGroupName$-AlwaysOnAgAutomaticFailoverHealthPolicy</PolicyName>
<InstanceName>$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2012.AlwaysOn.AvailabilityGroupHealth"]/InstanceName$</InstanceName>
</Configuration>
</UnitMonitor>