Availability Group Automatic Failover (Linux rollup)

Microsoft.SQLServer.Linux.Rollup.AvailabilityGroup.AutomaticFailoverReadiness (DependencyMonitor)

This monitor checks if the availability group has at least one secondary replica which is failover ready. The monitor becomes unhealthy and alert is registered when the failover mode of primary replica is automatic but none of secondary replica in the availability group is automatic failover ready. The monitor is healthy when at least one secondary replica is automatic failover ready. This monitor is a dependency (rollup) monitor.

Knowledge Base article:

Summary

This monitor checks whether the availability group has at least one secondary replica which is failover ready. The monitor becomes unhealthy and alert is registered when the failover mode of primary replica is automatic but none of secondary replica in the availability group is automatic failover ready. The monitor is healthy when at least one secondary replica is automatic failover ready.

Causes

The availability group is not ready for automatic failover. The primary replica is configured for automatic failover; however, the secondary replica is not ready for automatic failover. The secondary replica that is configured for automatic failover might be unavailable or its data synchronization state is currently not SYNCHRONIZED.

Resolutions

Overridable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

Yes

Generates Alerts

Defines whether the workflow generates an Alert.

No

Element properties:

TargetMicrosoft.SQLServer.Core.AvailabilityGroup
Parent MonitorMicrosoft.SQLServer.Core.Rollup.AvailabilityGroup.AutomaticFailoverReadiness
AlgorithmWorstOf
Source MonitorMicrosoft.SQLServer.Linux.Monitor.AvailabilityGroupHealth.AutomaticFailoverReadiness
RelationshipMicrosoft.SQLServer.Linux.AvailabilityGroupReferencesAvailabilityGroupHealth
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
RemotableTrue
AccessibilityPublic

Source Code:

<DependencyMonitor ID="Microsoft.SQLServer.Linux.Rollup.AvailabilityGroup.AutomaticFailoverReadiness" Accessibility="Public" Enabled="true" Target="SqlCoreLib!Microsoft.SQLServer.Core.AvailabilityGroup" ParentMonitorID="SqlCoreLib!Microsoft.SQLServer.Core.Rollup.AvailabilityGroup.AutomaticFailoverReadiness" Remotable="true" Priority="Normal" RelationshipType="SqlDiscL!Microsoft.SQLServer.Linux.AvailabilityGroupReferencesAvailabilityGroupHealth" MemberMonitor="Microsoft.SQLServer.Linux.Monitor.AvailabilityGroupHealth.AutomaticFailoverReadiness">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Warning</MemberUnAvailable>
</DependencyMonitor>